├── .gitattributes
├── .github
└── workflows
│ └── maven.yml
├── .gitignore
├── .project
├── .settings
├── org.eclipse.core.resources.prefs
├── org.eclipse.jdt.apt.core.prefs
├── org.eclipse.jdt.core.prefs
└── org.eclipse.m2e.core.prefs
├── .vscode
└── launch.json
├── LICENSE
├── Procfile
├── README.md
├── lapi.jar
├── pom.xml
└── src
├── data
├── legacy_data
│ ├── cards
│ │ ├── a_whole_new_world.txt
│ │ ├── abu-mischievous_monkey.txt
│ │ ├── aladdin-cornered_swordsman.txt
│ │ ├── aladdin-heroic_outlaw.txt
│ │ ├── aladdin-prince_ali.txt
│ │ ├── aladdin-street_rat.txt
│ │ ├── anna-heir_to_arendelle.txt
│ │ ├── archimedes-highly_educated_owl.txt
│ │ ├── ariel-on_human_legs.txt
│ │ ├── ariel-spectacular_singer.txt
│ │ ├── ariel-whoseit_collector.txt
│ │ ├── aurora-briar_rose.txt
│ │ ├── aurora-dreaming_guardian.txt
│ │ ├── aurora-regal_princess.txt
│ │ ├── be_our_guest.txt
│ │ ├── be_prepared.txt
│ │ ├── beast's_mirror.txt
│ │ ├── beast-hardheaded.txt
│ │ ├── beast-wolfsbane.txt
│ │ ├── befuddle.txt
│ │ ├── belle-inventive_engineer.txt
│ │ ├── belle-strange_but_special.txt
│ │ ├── break.txt
│ │ ├── captain-colonel's_lieutenant.txt
│ │ ├── captain_hook-captain_of_the_jolly_roger.txt
│ │ ├── captain_hook-forceful_duelist.txt
│ │ ├── captain_hook-ruthless_pirate.txt
│ │ ├── captain_hook-thinking_a_happy_thought.txt
│ │ ├── cerberus-three-headed_dog.txt
│ │ ├── cheshire_cat-not_all_there.txt
│ │ ├── chief_tui-respected_leader.txt
│ │ ├── cinderella-gentle_and_kind.txt
│ │ ├── coconut_basket.txt
│ │ ├── control_your_temper!.txt
│ │ ├── cruella_de_vil-miserable_as_usual.txt
│ │ ├── cut_to_the_chase.txt
│ │ ├── develop_your_brain.txt
│ │ ├── dinglehopper.txt
│ │ ├── do_it_again!.txt
│ │ ├── donald_duck-boisterous_fowl.txt
│ │ ├── donald_duck-musketeer.txt
│ │ ├── donald_duck-strutting_his_stuff.txt
│ │ ├── dr._facilier's_cards.txt
│ │ ├── dr._facilier-agent_provocateur.txt
│ │ ├── dr._facilier-charlatan.txt
│ │ ├── dr._facilier-remarkable_gentleman.txt
│ │ ├── dragon_fire.txt
│ │ ├── duke_of_weselton-opportunistic_official.txt
│ │ ├── elsa-ice_surfer.txt
│ │ ├── elsa-queen_regent.txt
│ │ ├── elsa-snow_queen.txt
│ │ ├── elsa-spirit_of_winter.txt
│ │ ├── eye_of_the_fates.txt
│ │ ├── fan_the_flames.txt
│ │ ├── fire_the_cannons!.txt
│ │ ├── fishbone_quill.txt
│ │ ├── flotsam-ursula's_spy.txt
│ │ ├── flounder-voice_of_reason.txt
│ │ ├── flynn_rider-charming_rogue.txt
│ │ ├── freeze.txt
│ │ ├── friends_on_the_other_side.txt
│ │ ├── frying_pan.txt
│ │ ├── gantu-galactic_federation_captain.txt
│ │ ├── gaston-arrogant_hunter.txt
│ │ ├── genie-on_the_job.txt
│ │ ├── genie-powers_unleashed.txt
│ │ ├── genie-the_ever_impressive.txt
│ │ ├── goofy-daredevil.txt
│ │ ├── goofy-musketeer.txt
│ │ ├── goons-maleficent's_underlings.txt
│ │ ├── grab_your_sword.txt
│ │ ├── gramma_tala-storyteller.txt
│ │ ├── hades-infernal_schemer.txt
│ │ ├── hades-king_of_olympus.txt
│ │ ├── hades-lord_of_the_underworld.txt
│ │ ├── hakuna_matata.txt
│ │ ├── hans-scheming_prince.txt
│ │ ├── hans-thirteenth_in_line.txt
│ │ ├── he's_got_a_sword!.txt
│ │ ├── healing_glow.txt
│ │ ├── heihei-boat_snack.txt
│ │ ├── hercules-true_hero.txt
│ │ ├── horace-no-good_scoundrel.txt
│ │ ├── iago-loud-mouthed_parrot.txt
│ │ ├── if_it's_not_baroque.txt
│ │ ├── jafar-keeper_of_secrets.txt
│ │ ├── jafar-wicked_sorcerer.txt
│ │ ├── jasmine-disguised.txt
│ │ ├── jasmine-queen_of_agrabah.txt
│ │ ├── jasper-common_crook.txt
│ │ ├── jetsam-ursula's_spy.txt
│ │ ├── john_silver-alien_pirate.txt
│ │ ├── jumba_jookiba-renegade_scientist.txt
│ │ ├── just_in_time.txt
│ │ ├── kristoff-official_ice_master.txt
│ │ ├── kronk-right-hand_man.txt
│ │ ├── kuzco-temperamental_emperor.txt
│ │ ├── lady_tremaine-wicked_stepmother.txt
│ │ ├── lantern.txt
│ │ ├── lefou-bumbler.txt
│ │ ├── lefou-instigator.txt
│ │ ├── let_it_go.txt
│ │ ├── lilo-galactic_hero.txt
│ │ ├── lilo-making_a_wish.txt
│ │ ├── mad_hatter-gracious_host.txt
│ │ ├── magic_broom-bucket_brigade.txt
│ │ ├── magic_golden_flower.txt
│ │ ├── magic_mirror.txt
│ │ ├── maleficent-biding_her_time.txt
│ │ ├── maleficent-monstrous_dragon.txt
│ │ ├── maleficent-sinister_visitor.txt
│ │ ├── maleficent-sorceress.txt
│ │ ├── maleficent-uninvited.txt
│ │ ├── marshmallow-persistent_guardian.txt
│ │ ├── maui-demigod.txt
│ │ ├── maui-hero_to_all.txt
│ │ ├── maurice-world-famous_inventor.txt
│ │ ├── maximus-palace_horse.txt
│ │ ├── maximus-relentless_pursuer.txt
│ │ ├── megara-pulling_the_strings.txt
│ │ ├── merlin-self-appointed_mentor.txt
│ │ ├── mickey_mouse-artful_rogue.txt
│ │ ├── mickey_mouse-brave_little_tailor.txt
│ │ ├── mickey_mouse-detective.txt
│ │ ├── mickey_mouse-musketeer.txt
│ │ ├── mickey_mouse-steamboat_pilot.txt
│ │ ├── mickey_mouse-true_friend.txt
│ │ ├── mickey_mouse-wayward_sorcerer.txt
│ │ ├── minnie_mouse-always_classy.txt
│ │ ├── minnie_mouse-beloved_princess.txt
│ │ ├── moana-chosen_by_the_ocean.txt
│ │ ├── moana-of_motunui.txt
│ │ ├── mother_gothel-selfish_manipulator.txt
│ │ ├── mother_knows_best.txt
│ │ ├── mr._smee-loyal_first_mate.txt
│ │ ├── mufasa-king_of_the_pride_lands.txt
│ │ ├── mulan-imperial_soldier.txt
│ │ ├── musketeer_tabard.txt
│ │ ├── olaf-friendly_snowman.txt
│ │ ├── one_jump_ahead.txt
│ │ ├── part_of_your_world.txt
│ │ ├── pascal-rapunzel's_companion.txt
│ │ ├── peter_pan-fearless_fighter.txt
│ │ ├── peter_pan-never_landing.txt
│ │ ├── philoctetes-trainer_of_heroes.txt
│ │ ├── plasma_blaster.txt
│ │ ├── poisoned_apple.txt
│ │ ├── pongo-ol'_rascal.txt
│ │ ├── prince_eric-dashing_and_brave.txt
│ │ ├── prince_phillip-dragonslayer.txt
│ │ ├── pumbaa-friendly_warthog.txt
│ │ ├── rafiki-mysterious_sage.txt
│ │ ├── ransack.txt
│ │ ├── rapunzel-gifted_with_healing.txt
│ │ ├── rapunzel-letting_down_her_hair.txt
│ │ ├── reflection.txt
│ │ ├── robin_hood-unrivaled_archer.txt
│ │ ├── scar-fiery_usurper.txt
│ │ ├── scar-mastermind.txt
│ │ ├── scar-shameless_firebrand.txt
│ │ ├── scepter_of_arendelle.txt
│ │ ├── sebastian-court_composer.txt
│ │ ├── sergeant_tibbs-courageous_cat.txt
│ │ ├── shield_of_virtue.txt
│ │ ├── simba-future_king.txt
│ │ ├── simba-protective_cub.txt
│ │ ├── simba-returned_king.txt
│ │ ├── simba-rightful_heir.txt
│ │ ├── smash.txt
│ │ ├── stampede.txt
│ │ ├── starkey-hook's_henchman.txt
│ │ ├── steal_from_the_rich.txt
│ │ ├── stitch-abomination.txt
│ │ ├── stitch-carefree_surfer.txt
│ │ ├── stitch-new_dog.txt
│ │ ├── stitch-rock_star.txt
│ │ ├── stolen_scimitar.txt
│ │ ├── sudden_chill.txt
│ │ ├── sven-official_ice_deliverer.txt
│ │ ├── sword_of_truth.txt
│ │ ├── tamatoa-drab_little_crab.txt
│ │ ├── tamatoa-so_shiny!.txt
│ │ ├── tangle.txt
│ │ ├── te_ka-heartless.txt
│ │ ├── te_ka-the_burning_one.txt
│ │ ├── the_beast_is_mine!.txt
│ │ ├── the_queen-wicked_and_vain.txt
│ │ ├── the_wardrobe-belle's_confidant.txt
│ │ ├── tigger-wonderful_thing.txt
│ │ ├── timon-grub_rustler.txt
│ │ ├── tinker_bell-giant_fairy.txt
│ │ ├── tinker_bell-most_helpful.txt
│ │ ├── tinker_bell-peter_pan's_ally.txt
│ │ ├── tinker_bell-tiny_tactician.txt
│ │ ├── triton-the_sea_king.txt
│ │ ├── ursula's_cauldron.txt
│ │ ├── ursula's_shell_necklace.txt
│ │ ├── ursula-power_hungry.txt
│ │ ├── vicious_betrayal.txt
│ │ ├── white_rabbit's_pocket_watch.txt
│ │ ├── work_together.txt
│ │ ├── you_have_forgotten_me.txt
│ │ ├── yzma-alchemist.txt
│ │ └── zeus-god_of_lightning.txt
│ └── lists
│ │ ├── colors.txt
│ │ ├── lists.txt
│ │ └── sets.txt
├── ptcjlukd_lordb_card_info.sql
└── ptcjlukd_lordb_set_info.sql
├── main
└── java
│ └── com
│ └── lorcanaapi
│ ├── APIResponse.java
│ ├── APIServer.java
│ ├── App.java
│ ├── ErrorMessageResponse.java
│ ├── ParameterManager.java
│ ├── SQLQuery.java
│ ├── URIBit.java
│ ├── URLParameter.java
│ ├── handlers
│ ├── AdminHandler.java
│ ├── BulkHandler.java
│ ├── CardsHandler.java
│ ├── PostHandler.java
│ ├── SetsHandler.java
│ ├── StatisticsHandler.java
│ └── URLHandler.java
│ ├── legacy
│ ├── ErrorJSONObject.java
│ ├── FuzzyHandler.java
│ ├── JSONHandler.java
│ ├── LAPIUtils.java
│ ├── LegacyAPIServer.java
│ ├── SearchHandler.java
│ ├── StrictHandler.java
│ ├── TextHandler.java
│ └── TrackingHandler.java
│ ├── parameters
│ ├── BulkTypeParameter.java
│ ├── DisplayOnlyParameter.java
│ ├── FuzzyMinimunParameter.java
│ ├── FuzzyParameter.java
│ ├── FuzzyTestParemeter.java
│ ├── MandatorySQLExecutor.java
│ ├── OrderByParameter.java
│ ├── PageParameter.java
│ ├── PageSizeParameter.java
│ ├── RefParameter.java
│ ├── SearchParameter.java
│ ├── SortDirectionParameter.java
│ └── StrictParameter.java
│ └── precursors
│ ├── AllPrecursor.java
│ ├── FetchPrecursor.java
│ ├── PrecursorManager.java
│ ├── URLPrecursor.java
│ └── bulkhandler
│ ├── BulkCardsPrecursor.java
│ └── BulkSetsPrecursor.java
└── test
└── java
└── com
└── kinsta
└── helloworld
└── AppTest.java
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.github/workflows/maven.yml:
--------------------------------------------------------------------------------
1 | # This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
3 |
4 | # This workflow uses actions that are not certified by GitHub.
5 | # They are provided by a third-party and are governed by
6 | # separate terms of service, privacy policy, and support
7 | # documentation.
8 |
9 | name: Java CI with Maven
10 |
11 | on:
12 | push:
13 | branches: [ "main" ]
14 | pull_request:
15 | branches: [ "main" ]
16 |
17 | jobs:
18 | build:
19 |
20 | runs-on: ubuntu-latest
21 |
22 | steps:
23 | - uses: actions/checkout@v3
24 | - name: Set up JDK 11
25 | uses: actions/setup-java@v3
26 | with:
27 | java-version: '11'
28 | distribution: 'temurin'
29 | cache: maven
30 | - name: Build with Maven
31 | run: mvn -B package --file pom.xml
32 |
33 | # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
34 | - name: Update dependency graph
35 | uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 | /target/
3 | /.vscode/
4 | .classpath
5 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Lorcana-API
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.m2e.core.maven2Nature
22 |
23 |
24 |
25 | 1733253205194
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding//src/main/java=UTF-8
3 | encoding//src/test/java=UTF-8
4 | encoding/=UTF-8
5 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.apt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.apt.aptEnabled=false
3 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
4 | org.eclipse.jdt.core.compiler.compliance=17
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
7 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
8 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
9 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
10 | org.eclipse.jdt.core.compiler.processAnnotations=disabled
11 | org.eclipse.jdt.core.compiler.release=disabled
12 | org.eclipse.jdt.core.compiler.source=17
13 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.m2e.core.prefs:
--------------------------------------------------------------------------------
1 | activeProfiles=
2 | eclipse.preferences.version=1
3 | resolveWorkspaceProjects=true
4 | version=1
5 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "type": "java",
9 | "name": "Current File",
10 | "request": "launch",
11 | "mainClass": "${file}",
12 | "args": "jdbc:mysql://127.0.0.1:3306/?user=root root fgK@AS42i23@#asf"
13 |
14 | },
15 | {
16 | "type": "java",
17 | "name": "App",
18 | "request": "launch",
19 | "mainClass": "com.lorcanaapi.App",
20 | "projectName": "lorcanaapi",
21 | "args": "jdbc:mysql://127.0.0.1:3306/?user=root root fgK@AS42i23@#asf"
22 |
23 | }
24 | ]
25 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: java -jar target/kinsta-java-hello-world-1.0-SNAPSHOT.jar
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### Lorcana.api.com
2 | This is the backend code for [Lorcana-api.com](https://lorcana-api.com).
3 | Lorcana-Api is a website for easiley fetching and filtering Lorcana cards.
4 | Several endpoints are avaliable, like /strict/, /fuzzy/, /lists/, and /search/. An in-depth explanation of all of these endpoints is avaliable at [Lorcana-api.com](lorcana-api.com/How-To.html)
--------------------------------------------------------------------------------
/lapi.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dogloverblue/Lorcana-API/12953522ec1ef6d6a5d995d80622c64dd74ae1f1/lapi.jar
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/a_whole_new_world.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 195,
4 | "color": "Steel",
5 | "artist": "Koni",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Each player discards their hand and draws 7.",
11 | "effect": "Each player discards their hand and draws 7.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/a_whole_new_world/a_whole_new_world-small.png",
14 | "no-art": "https://lorcana-api.com/images/a_whole_new_world/a_whole_new_world-no-art.png",
15 | "large": "https://lorcana-api.com/images/a_whole_new_world/a_whole_new_world-large.png",
16 | "art-crop": "https://lorcana-api.com/images/a_whole_new_world/a_whole_new_world-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/a_whole_new_world/a_whole_new_world-medium.png",
18 | "foil": "https://lorcana-api.com/images/a_whole_new_world/a_whole_new_world-foil.png"
19 | },
20 | "name": "A Whole New World",
21 | "ink-cost": 5,
22 | "flavor-text": "Shining, shimmering, splendid...",
23 | "rarity": "Super Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/abu-mischievous_monkey.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 103,
6 | "color": "Ruby",
7 | "strength": 3,
8 | "artist": "Oleg Yurkov",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Mischievous Monkey",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/abu/mischievous_monkey/abu-mischievous_monkey-small.png",
22 | "no-art": "https://lorcana-api.com/images/abu/mischievous_monkey/abu-mischievous_monkey-no-art.png",
23 | "large": "https://lorcana-api.com/images/abu/mischievous_monkey/abu-mischievous_monkey-large.png",
24 | "art-crop": "https://lorcana-api.com/images/abu/mischievous_monkey/abu-mischievous_monkey-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/abu/mischievous_monkey/abu-mischievous_monkey-medium.png",
26 | "foil": "https://lorcana-api.com/images/abu/mischievous_monkey/abu-mischievous_monkey-foil.png"
27 | },
28 | "name": "Abu",
29 | "ink-cost": 3,
30 | "flavor-text": "\"Someday, Abu, things are gonna change. We'll be rich, live in a palace, and never have any problems at all.\" -Aladdin",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/aladdin-cornered_swordsman.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 171,
6 | "color": "Steel",
7 | "strength": 2,
8 | "artist": "Randy Bishop",
9 | "willpower": 1,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Cornered Swordsman",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/aladdin/cornered_swordsman/aladdin-cornered_swordsman-small.png",
22 | "no-art": "https://lorcana-api.com/images/aladdin/cornered_swordsman/aladdin-cornered_swordsman-no-art.png",
23 | "large": "https://lorcana-api.com/images/aladdin/cornered_swordsman/aladdin-cornered_swordsman-large.png",
24 | "art-crop": "https://lorcana-api.com/images/aladdin/cornered_swordsman/aladdin-cornered_swordsman-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/aladdin/cornered_swordsman/aladdin-cornered_swordsman-medium.png",
26 | "foil": "https://lorcana-api.com/images/aladdin/cornered_swordsman/aladdin-cornered_swordsman-foil.png"
27 | },
28 | "name": "Aladdin",
29 | "ink-cost": 2,
30 | "flavor-text": "\"Oh ho! So the street rat found a sword and a backbone!\" -Razoul",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/aladdin-prince_ali.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": ["Ward"],
4 | "set": "The First Chapter",
5 | "card-number": 69,
6 | "color": "Emerald",
7 | "strength": 2,
8 | "artist": "Lauren Walsh",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "Ward (Opponents can't choose this character except to challenge.) ",
20 | "subtitle": "Prince Ali",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/aladdin/prince_ali/aladdin-prince_ali-small.png",
23 | "no-art": "https://lorcana-api.com/images/aladdin/prince_ali/aladdin-prince_ali-no-art.png",
24 | "large": "https://lorcana-api.com/images/aladdin/prince_ali/aladdin-prince_ali-large.png",
25 | "art-crop": "https://lorcana-api.com/images/aladdin/prince_ali/aladdin-prince_ali-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/aladdin/prince_ali/aladdin-prince_ali-medium.png",
27 | "foil": "https://lorcana-api.com/images/aladdin/prince_ali/aladdin-prince_ali-foil.png"
28 | },
29 | "name": "Aladdin",
30 | "ink-cost": 2,
31 | "flavor-text": "Fabulously wealthy. Practically untouchable. Genuinely inauthentic.",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/aladdin-street_rat.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 105,
6 | "color": "Ruby",
7 | "strength": 2,
8 | "artist": "Peter Brockhammer",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Improvise": "When you play this character, each opponent loses 1 lore."},
17 | "inkable": true,
18 | "body-text": "IMPROVISE: When you play this character, each opponent loses 1 lore.",
19 | "subtitle": "Street Rat",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/aladdin/street_rat/aladdin-street_rat-small.png",
22 | "no-art": "https://lorcana-api.com/images/aladdin/street_rat/aladdin-street_rat-no-art.png",
23 | "large": "https://lorcana-api.com/images/aladdin/street_rat/aladdin-street_rat-large.png",
24 | "art-crop": "https://lorcana-api.com/images/aladdin/street_rat/aladdin-street_rat-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/aladdin/street_rat/aladdin-street_rat-medium.png",
26 | "foil": "https://lorcana-api.com/images/aladdin/street_rat/aladdin-street_rat-foil.png"
27 | },
28 | "name": "Aladdin",
29 | "ink-cost": 3,
30 | "flavor-text": "It can be hard to tell the difference between a diamond in the rough and someone who's just, well, rough.",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/ariel-on_human_legs.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 2,
5 | "card-number": 1,
6 | "color": "Amber",
7 | "strength": 3,
8 | "artist": "Matthew Robert Davies",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Princess"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Voiceless": "This character can't {t} to sing songs."},
18 | "inkable": true,
19 | "body-text": "VOICELESS: This character can't {t} to sing songs.",
20 | "subtitle": "On Human Legs",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/ariel/on_human_legs/ariel-on_human_legs-small.png",
23 | "no-art": "https://lorcana-api.com/images/ariel/on_human_legs/ariel-on_human_legs-no-art.png",
24 | "large": "https://lorcana-api.com/images/ariel/on_human_legs/ariel-on_human_legs-large.png",
25 | "art-crop": "https://lorcana-api.com/images/ariel/on_human_legs/ariel-on_human_legs-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/ariel/on_human_legs/ariel-on_human_legs-medium.png",
27 | "foil": "https://lorcana-api.com/images/ariel/on_human_legs/ariel-on_human_legs-foil.png"
28 | },
29 | "name": "Ariel",
30 | "flavor-text": "\\\"...\\\"",
31 | "ink-cost": 4,
32 | "rarity": "Uncommon"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/ariel-whoseit_collector.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 137,
6 | "color": "Sapphire",
7 | "strength": 3,
8 | "artist": "Hedvig Haggman-Sund",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Princess"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Look At This Stuff": "Whenever you play an item, you may ready this character."},
18 | "inkable": false,
19 | "body-text": "LOOK AT THIS STUFF: Whenever you play an item, you may ready this character.",
20 | "subtitle": "Whoseit Collector",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/ariel/whoseit_collector/ariel-whoseit_collector-small.png",
23 | "no-art": "https://lorcana-api.com/images/ariel/whoseit_collector/ariel-whoseit_collector-no-art.png",
24 | "large": "https://lorcana-api.com/images/ariel/whoseit_collector/ariel-whoseit_collector-large.png",
25 | "art-crop": "https://lorcana-api.com/images/ariel/whoseit_collector/ariel-whoseit_collector-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/ariel/whoseit_collector/ariel-whoseit_collector-medium.png",
27 | "foil": "https://lorcana-api.com/images/ariel/whoseit_collector/ariel-whoseit_collector-foil.png"
28 | },
29 | "name": "Ariel",
30 | "ink-cost": 4,
31 | "flavor-text": "You want thingamabobs? I got twenty.",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/aurora-briar_rose.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 138,
6 | "color": "Sapphire",
7 | "strength": 2,
8 | "artist": "Rosalia Radosti",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Princess"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Disarming Beauty": "When you play this character, chosen character gets -2{strength} this turn."},
18 | "inkable": true,
19 | "body-text": "DISARMING BEAUTY: When you play this character, chosen character gets -2{strength} this turn.",
20 | "subtitle": "Briar Rose",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/aurora/briar_rose/aurora-briar_rose-small.png",
23 | "no-art": "https://lorcana-api.com/images/aurora/briar_rose/aurora-briar_rose-no-art.png",
24 | "large": "https://lorcana-api.com/images/aurora/briar_rose/aurora-briar_rose-large.png",
25 | "art-crop": "https://lorcana-api.com/images/aurora/briar_rose/aurora-briar_rose-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/aurora/briar_rose/aurora-briar_rose-medium.png",
27 | "foil": "https://lorcana-api.com/images/aurora/briar_rose/aurora-briar_rose-foil.png"
28 | },
29 | "name": "Aurora",
30 | "ink-cost": 4,
31 | "flavor-text": "\"There was something strange about that voice. Too beautiful to be real...\" -Prince Phillip",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/aurora-regal_princess.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 2,
5 | "card-number": 140,
6 | "color": "Sapphire",
7 | "strength": 2,
8 | "artist": "Samanta Erdini",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Princess"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Regal Princess",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/aurora/regal_princess/aurora-regal_princess-small.png",
23 | "no-art": "https://lorcana-api.com/images/aurora/regal_princess/aurora-regal_princess-no-art.png",
24 | "large": "https://lorcana-api.com/images/aurora/regal_princess/aurora-regal_princess-large.png",
25 | "art-crop": "https://lorcana-api.com/images/aurora/regal_princess/aurora-regal_princess-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/aurora/regal_princess/aurora-regal_princess-medium.png",
27 | "foil": "https://lorcana-api.com/images/aurora/regal_princess/aurora-regal_princess-foil.png"
28 | },
29 | "name": "Aurora",
30 | "flavor-text": "\\\"They say if you dream a thing more than once, it's sure to come true\\\"",
31 | "ink-cost": 2,
32 | "rarity": "Uncommon"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/be_our_guest.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 25,
4 | "color": "Amber",
5 | "artist": "R. La Barbera/L. Giammichele",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Look at the top 4 cards of your deck. You may reveal a character card and put it into your hand. Put the rest on the bottom of your deck in any order.",
11 | "effect": "Look at the top 4 cards of your deck. You may reveal a character card and put it into your hand. Put the rest on the bottom of your deck in any order.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/be_our_guest/be_our_guest-small.png",
14 | "no-art": "https://lorcana-api.com/images/be_our_guest/be_our_guest-no-art.png",
15 | "large": "https://lorcana-api.com/images/be_our_guest/be_our_guest-large.png",
16 | "art-crop": "https://lorcana-api.com/images/be_our_guest/be_our_guest-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/be_our_guest/be_our_guest-medium.png",
18 | "foil": "https://lorcana-api.com/images/be_our_guest/be_our_guest-foil.png"
19 | },
20 | "name": "Be Our Guest",
21 | "ink-cost": 2,
22 | "flavor-text": "",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/be_prepared.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 128,
4 | "color": "Ruby",
5 | "artist": "Jared Nickerl",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Banish all Characters.",
11 | "effect": "Banish all Characters.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/be_prepared/be_prepared-small.png",
14 | "no-art": "https://lorcana-api.com/images/be_prepared/be_prepared-no-art.png",
15 | "large": "https://lorcana-api.com/images/be_prepared/be_prepared-large.png",
16 | "art-crop": "https://lorcana-api.com/images/be_prepared/be_prepared-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/be_prepared/be_prepared-medium.png",
18 | "foil": "https://lorcana-api.com/images/be_prepared/be_prepared-foil.png"
19 | },
20 | "name": "Be Prepared",
21 | "ink-cost": 7,
22 | "flavor-text": "\"Our teeth and ambitions are bared!\"",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/beast's_mirror.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 201,
4 | "color": "Steel",
5 | "artist": "Samanta Erdini",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Show Me": "{t}, 3? - If you have no cards in your hand, draw a card."},
9 | "inkable": true,
10 | "body-text": "SHOW ME: {t}, 3? - If you have no cards in your hand, draw a card.",
11 | "effect": null,
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/beast's_mirror/beast's_mirror-small.png",
14 | "no-art": "https://lorcana-api.com/images/beast's_mirror/beast's_mirror-no-art.png",
15 | "large": "https://lorcana-api.com/images/beast's_mirror/beast's_mirror-large.png",
16 | "art-crop": "https://lorcana-api.com/images/beast's_mirror/beast's_mirror-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/beast's_mirror/beast's_mirror-medium.png",
18 | "foil": "https://lorcana-api.com/images/beast's_mirror/beast's_mirror-foil.png"
19 | },
20 | "name": "Beast's Mirror",
21 | "ink-cost": 2,
22 | "flavor-text": "Ashamed of his monstrous form, the Beast concealed himself inside his castle, with a magic mirror as his only window to the outside world.",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/beast-hardheaded.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 2,
5 | "card-number": 172,
6 | "color": "Steel",
7 | "strength": 4,
8 | "artist": "Cookie",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Break": "When you play this character, you may banish chosen item"},
18 | "inkable": true,
19 | "body-text": "BREAK: When you play this character, you may banish chosen item",
20 | "subtitle": "Hardheaded",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/beast/hardheaded/beast-hardheaded-small.png",
23 | "no-art": "https://lorcana-api.com/images/beast/hardheaded/beast-hardheaded-no-art.png",
24 | "large": "https://lorcana-api.com/images/beast/hardheaded/beast-hardheaded-large.png",
25 | "art-crop": "https://lorcana-api.com/images/beast/hardheaded/beast-hardheaded-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/beast/hardheaded/beast-hardheaded-medium.png",
27 | "foil": "https://lorcana-api.com/images/beast/hardheaded/beast-hardheaded-foil.png"
28 | },
29 | "name": "Beast",
30 | "flavor-text": "",
31 | "ink-cost": 5,
32 | "rarity": "Uncommon"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/beast-wolfsbane.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": ["Rush"],
4 | "set": "The First Chapter",
5 | "card-number": 70,
6 | "color": "Emerald",
7 | "strength": 4,
8 | "artist": "Jeff Murchie",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Hero",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Roar": "When you play this character, exert all opposing damaged characters."},
18 | "inkable": false,
19 | "body-text": "Rush (This character can challenge the turn they're played.) \nROAR: When you play this character, exert all opposing damaged characters.",
20 | "subtitle": "Wolfsbane",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/beast/wolfsbane/beast-wolfsbane-small.png",
23 | "no-art": "https://lorcana-api.com/images/beast/wolfsbane/beast-wolfsbane-no-art.png",
24 | "large": "https://lorcana-api.com/images/beast/wolfsbane/beast-wolfsbane-large.png",
25 | "art-crop": "https://lorcana-api.com/images/beast/wolfsbane/beast-wolfsbane-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/beast/wolfsbane/beast-wolfsbane-medium.png",
27 | "foil": "https://lorcana-api.com/images/beast/wolfsbane/beast-wolfsbane-foil.png"
28 | },
29 | "name": "Beast",
30 | "ink-cost": 5,
31 | "flavor-text": "\"I'll take on all of you if I have to!\"",
32 | "rarity": "Legendary"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/befuddle.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 62,
4 | "color": "Amethyst",
5 | "artist": "Kendall Hale",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Return a character or item with cost 2 or less to their player's hand.",
11 | "effect": "Return a character or item with cost 2 or less to their player's hand.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/befuddle/befuddle-small.png",
14 | "no-art": "https://lorcana-api.com/images/befuddle/befuddle-no-art.png",
15 | "large": "https://lorcana-api.com/images/befuddle/befuddle-large.png",
16 | "art-crop": "https://lorcana-api.com/images/befuddle/befuddle-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/befuddle/befuddle-medium.png",
18 | "foil": "https://lorcana-api.com/images/befuddle/befuddle-foil.png"
19 | },
20 | "name": "Befuddle",
21 | "ink-cost": 1,
22 | "flavor-text": "Never be afraid to have your mind boggled now and then.",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/break.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 196,
4 | "color": "Steel",
5 | "artist": "Grace Tran",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Banish chosen item.",
11 | "effect": "Banish chosen item.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/break/break-small.png",
14 | "no-art": "https://lorcana-api.com/images/break/break-no-art.png",
15 | "large": "https://lorcana-api.com/images/break/break-large.png",
16 | "art-crop": "https://lorcana-api.com/images/break/break-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/break/break-medium.png",
18 | "foil": "https://lorcana-api.com/images/break/break-foil.png"
19 | },
20 | "name": "Break",
21 | "ink-cost": 2,
22 | "flavor-text": "No one throws a tantrum like a beast.",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/captain-colonel's_lieutenant.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 106,
6 | "color": "Ruby",
7 | "strength": 6,
8 | "artist": "Brian Weisz",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally",
14 | "Captain"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Colonel's Lieutenant",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/captain/colonel's_lieutenant/captain-colonel's_lieutenant-small.png",
23 | "no-art": "https://lorcana-api.com/images/captain/colonel's_lieutenant/captain-colonel's_lieutenant-no-art.png",
24 | "large": "https://lorcana-api.com/images/captain/colonel's_lieutenant/captain-colonel's_lieutenant-large.png",
25 | "art-crop": "https://lorcana-api.com/images/captain/colonel's_lieutenant/captain-colonel's_lieutenant-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/captain/colonel's_lieutenant/captain-colonel's_lieutenant-medium.png",
27 | "foil": "https://lorcana-api.com/images/captain/colonel's_lieutenant/captain-colonel's_lieutenant-foil.png"
28 | },
29 | "name": "Captain",
30 | "ink-cost": 5,
31 | "flavor-text": "\"Barking signal. It's an alert. Report to the Colonel at once!\"",
32 | "rarity": "Uncommon"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/captain_hook-forceful_duelist.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": ["Challenger 2"],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 174,
6 | "color": "Steel",
7 | "strength": 1,
8 | "artist": "Marcell Berg",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Pirate",
15 | "Captain"
16 | ],
17 | "set-code": "TFC",
18 | "abilities": {},
19 | "inkable": true,
20 | "body-text": "Challenger 2 When challenging, this character get +2{strength}.) ",
21 | "subtitle": "Forceful Duelist",
22 | "image-urls": {
23 | "small": "https://lorcana-api.com/images/captain_hook/forceful_duelist/captain_hook-forceful_duelist-small.png",
24 | "no-art": "https://lorcana-api.com/images/captain_hook/forceful_duelist/captain_hook-forceful_duelist-no-art.png",
25 | "large": "https://lorcana-api.com/images/captain_hook/forceful_duelist/captain_hook-forceful_duelist-large.png",
26 | "art-crop": "https://lorcana-api.com/images/captain_hook/forceful_duelist/captain_hook-forceful_duelist-art-crop.png",
27 | "medium": "https://lorcana-api.com/images/captain_hook/forceful_duelist/captain_hook-forceful_duelist-medium.png",
28 | "foil": "https://lorcana-api.com/images/captain_hook/forceful_duelist/captain_hook-forceful_duelist-foil.png"
29 | },
30 | "name": "Captain Hook",
31 | "flavor-text": "He loves to make light of a foe's predicament",
32 | "ink-cost": 1,
33 | "rarity": "Common"
34 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/cerberus-three-headed_dog.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 176,
6 | "color": "Steel",
7 | "strength": 5,
8 | "artist": "",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": ["Storyborn"],
12 | "set-code": "TFC",
13 | "abilities": {},
14 | "inkable": true,
15 | "body-text": "",
16 | "subtitle": "Three-Headed Dog",
17 | "image-urls": {
18 | "small": "https://lorcana-api.com/images/cerberus/three-headed_dog/cerberus-three-headed_dog-small.png",
19 | "no-art": "https://lorcana-api.com/images/cerberus/three-headed_dog/cerberus-three-headed_dog-no-art.png",
20 | "large": "https://lorcana-api.com/images/cerberus/three-headed_dog/cerberus-three-headed_dog-large.png",
21 | "art-crop": "https://lorcana-api.com/images/cerberus/three-headed_dog/cerberus-three-headed_dog-art-crop.png",
22 | "medium": "https://lorcana-api.com/images/cerberus/three-headed_dog/cerberus-three-headed_dog-medium.png",
23 | "foil": "https://lorcana-api.com/images/cerberus/three-headed_dog/cerberus-three-headed_dog-foil.png"
24 | },
25 | "name": "Cerberus",
26 | "ink-cost": 5,
27 | "flavor-text": "",
28 | "rarity": "Common"
29 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/coconut_basket.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 166,
4 | "color": "Sapphire",
5 | "artist": "Milica Celikovic",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Consider The Coconut": "Whenever you play a character, you may remove up to 2 damage from chosen character."},
9 | "inkable": true,
10 | "body-text": "CONSIDER THE COCONUT: Whenever you play a character, you may remove up to 2 damage from chosen character.",
11 | "effect": null,
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/coconut_basket/coconut_basket-small.png",
14 | "no-art": "https://lorcana-api.com/images/coconut_basket/coconut_basket-no-art.png",
15 | "large": "https://lorcana-api.com/images/coconut_basket/coconut_basket-large.png",
16 | "art-crop": "https://lorcana-api.com/images/coconut_basket/coconut_basket-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/coconut_basket/coconut_basket-medium.png",
18 | "foil": "https://lorcana-api.com/images/coconut_basket/coconut_basket-foil.png"
19 | },
20 | "name": "Coconut Basket",
21 | "ink-cost": 2,
22 | "flavor-text": "The coconut is a versatile gift from the gods, used to make nearly everything - including gift baskets to carry more coconuts.",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/control_your_temper!.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 26,
4 | "color": "Amber",
5 | "artist": "Amber Kommovonga",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "inkable": true,
9 | "body-text": "Chosen character gets -2? this turn.",
10 | "effect": "Chosen character gets -2? this turn.",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/control_your_temper!/control_your_temper!-small.png",
13 | "no-art": "https://lorcana-api.com/images/control_your_temper!/control_your_temper!-no-art.png",
14 | "large": "https://lorcana-api.com/images/control_your_temper!/control_your_temper!-large.png",
15 | "art-crop": "https://lorcana-api.com/images/control_your_temper!/control_your_temper!-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/control_your_temper!/control_your_temper!-medium.png",
17 | "foil": "https://lorcana-api.com/images/control_your_temper!/control_your_temper!-foil.png"
18 | },
19 | "name": "Control Your Temper!",
20 | "ink-cost": 1,
21 | "flavor-text": "",
22 | "rarity": "Common"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/cut_to_the_chase.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 129,
4 | "color": "Ruby",
5 | "artist": "Ellie Horie",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Chosen character gains Rush this turn. (They can challenge the turn they're played.)",
11 | "effect": "Chosen character gains Rush this turn. (They can challenge the turn they're played.)",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/cut_to_the_chase/cut_to_the_chase-small.png",
14 | "no-art": "https://lorcana-api.com/images/cut_to_the_chase/cut_to_the_chase-no-art.png",
15 | "large": "https://lorcana-api.com/images/cut_to_the_chase/cut_to_the_chase-large.png",
16 | "art-crop": "https://lorcana-api.com/images/cut_to_the_chase/cut_to_the_chase-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/cut_to_the_chase/cut_to_the_chase-medium.png",
18 | "foil": "https://lorcana-api.com/images/cut_to_the_chase/cut_to_the_chase-foil.png"
19 | },
20 | "name": "Cut To The Chase",
21 | "ink-cost": 2,
22 | "flavor-text": "\"Surprise!\"",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/develop_your_brain.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 161,
4 | "color": "Sapphire",
5 | "artist": "Pao Yong",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "inkable": true,
9 | "body-text": "Look at the top 2 cards of your deck. Put one into your hand and the other on the bottom of the deck.",
10 | "effect": "Look at the top 2 cards of your deck. Put one into your hand and the other on the bottom of the deck.",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/develop_your_brain/develop_your_brain-small.png",
13 | "no-art": "https://lorcana-api.com/images/develop_your_brain/develop_your_brain-no-art.png",
14 | "large": "https://lorcana-api.com/images/develop_your_brain/develop_your_brain-large.png",
15 | "art-crop": "https://lorcana-api.com/images/develop_your_brain/develop_your_brain-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/develop_your_brain/develop_your_brain-medium.png",
17 | "foil": "https://lorcana-api.com/images/develop_your_brain/develop_your_brain-foil.png"
18 | },
19 | "name": "Develop Your Brain",
20 | "ink-cost": 1,
21 | "flavor-text": "\"Knowledge, wisdom-there's the real power!\" -Merlin",
22 | "rarity": "Common"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/dinglehopper.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 32,
4 | "color": "Amber",
5 | "artist": "Eri Welli",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Straighten Hair": "{t}- Remove up to 1 damage from chosen character"},
9 | "inkable": true,
10 | "body-text": "STRAIGHTEN HAIR: {t}- Remove up to 1 damage from chosen character",
11 | "effect": null,
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/dinglehopper/dinglehopper-small.png",
14 | "no-art": "https://lorcana-api.com/images/dinglehopper/dinglehopper-no-art.png",
15 | "large": "https://lorcana-api.com/images/dinglehopper/dinglehopper-large.png",
16 | "art-crop": "https://lorcana-api.com/images/dinglehopper/dinglehopper-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/dinglehopper/dinglehopper-medium.png",
18 | "foil": "https://lorcana-api.com/images/dinglehopper/dinglehopper-foil.png"
19 | },
20 | "name": "Dinglehopper",
21 | "ink-cost": 1,
22 | "flavor-text": "Enjoy the finest of human hairstyles!",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/do_it_again!.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 94,
4 | "color": "Emerald",
5 | "artist": "Ellie Horie",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Return an action card from your discard to your hand.",
11 | "effect": "Return an action card from your discard to your hand.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/do_it_again!/do_it_again!-small.png",
14 | "no-art": "https://lorcana-api.com/images/do_it_again!/do_it_again!-no-art.png",
15 | "large": "https://lorcana-api.com/images/do_it_again!/do_it_again!-large.png",
16 | "art-crop": "https://lorcana-api.com/images/do_it_again!/do_it_again!-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/do_it_again!/do_it_again!-medium.png",
18 | "foil": "https://lorcana-api.com/images/do_it_again!/do_it_again!-foil.png"
19 | },
20 | "name": "Do It Again!",
21 | "ink-cost": 3,
22 | "flavor-text": "\"...Then scrub the terrace, sweep the halls and the stairs, clean the chimneys. And of course there's the mending, and the sewing, and the laundry...\"\\n - Lady Tremaine",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/donald_duck-boisterous_fowl.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 108,
6 | "color": "Ruby",
7 | "strength": 2,
8 | "artist": "Kenneth Anderson",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": ["Storyborn"],
12 | "set-code": "TFC",
13 | "abilities": {},
14 | "inkable": true,
15 | "body-text": "",
16 | "subtitle": "Boisterous Fowl",
17 | "image-urls": {
18 | "small": "https://lorcana-api.com/images/donald_duck/boisterous_fowl/donald_duck-boisterous_fowl-small.png",
19 | "no-art": "https://lorcana-api.com/images/donald_duck/boisterous_fowl/donald_duck-boisterous_fowl-no-art.png",
20 | "large": "https://lorcana-api.com/images/donald_duck/boisterous_fowl/donald_duck-boisterous_fowl-large.png",
21 | "art-crop": "https://lorcana-api.com/images/donald_duck/boisterous_fowl/donald_duck-boisterous_fowl-art-crop.png",
22 | "medium": "https://lorcana-api.com/images/donald_duck/boisterous_fowl/donald_duck-boisterous_fowl-medium.png",
23 | "foil": "https://lorcana-api.com/images/donald_duck/boisterous_fowl/donald_duck-boisterous_fowl-foil.png"
24 | },
25 | "name": "Donald Duck",
26 | "flavor-text": "\\\"Who you callin' boisterous, buster?\\\"",
27 | "ink-cost": 2,
28 | "rarity": "Uncommon"
29 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/donald_duck-strutting_his_stuff.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": ["Ward"],
4 | "set": "The First Chapter",
5 | "card-number": 144,
6 | "color": "Sapphire",
7 | "strength": 4,
8 | "artist": "Cam Kendell",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Hero",
14 | "Inventor"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "Ward (Opponents can't choose this character except to challenge.) ",
20 | "subtitle": "Strutting His Stuff",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/donald_duck/strutting_his_stuff/donald_duck-strutting_his_stuff-small.png",
23 | "no-art": "https://lorcana-api.com/images/donald_duck/strutting_his_stuff/donald_duck-strutting_his_stuff-no-art.png",
24 | "large": "https://lorcana-api.com/images/donald_duck/strutting_his_stuff/donald_duck-strutting_his_stuff-large.png",
25 | "art-crop": "https://lorcana-api.com/images/donald_duck/strutting_his_stuff/donald_duck-strutting_his_stuff-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/donald_duck/strutting_his_stuff/donald_duck-strutting_his_stuff-medium.png",
27 | "foil": "https://lorcana-api.com/images/donald_duck/strutting_his_stuff/donald_duck-strutting_his_stuff-foil.png"
28 | },
29 | "name": "Donald Duck",
30 | "ink-cost": 5,
31 | "flavor-text": "Walk smarter, not harder.",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/dr._facilier's_cards.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 101,
4 | "color": "Emerald",
5 | "artist": "Koni",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"The Cards Will Tell": "{t} - You pay 1{ink} less for the next action you play this turn."},
9 | "inkable": false,
10 | "body-text": "THE CARDS WILL TELL: {t} - You pay 1{ink} less for the next action you play this turn.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/dr._facilier's_cards/dr._facilier's_cards-small.png",
14 | "no-art": "https://lorcana-api.com/images/dr._facilier's_cards/dr._facilier's_cards-no-art.png",
15 | "large": "https://lorcana-api.com/images/dr._facilier's_cards/dr._facilier's_cards-large.png",
16 | "art-crop": "https://lorcana-api.com/images/dr._facilier's_cards/dr._facilier's_cards-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/dr._facilier's_cards/dr._facilier's_cards-medium.png",
18 | "foil": "https://lorcana-api.com/images/dr._facilier's_cards/dr._facilier's_cards-foil.png"
19 | },
20 | "name": "Dr. Facilier's Cards",
21 | "ink-cost": 2,
22 | "flavor-text": "\"Take a little trip into your future with me!\" -Dr. Facilier",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/dr._facilier-charlatan.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": ["Challenger 2"],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 38,
6 | "color": "Amethyst",
7 | "strength": 0,
8 | "artist": "Grace Tran",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "Challenger 2 When challenging, this character get +2{strength}.) ",
20 | "subtitle": "Charlatan",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/dr._facilier/charlatan/dr._facilier-charlatan-small.png",
23 | "no-art": "https://lorcana-api.com/images/dr._facilier/charlatan/dr._facilier-charlatan-no-art.png",
24 | "large": "https://lorcana-api.com/images/dr._facilier/charlatan/dr._facilier-charlatan-large.png",
25 | "art-crop": "https://lorcana-api.com/images/dr._facilier/charlatan/dr._facilier-charlatan-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/dr._facilier/charlatan/dr._facilier-charlatan-medium.png",
27 | "foil": "https://lorcana-api.com/images/dr._facilier/charlatan/dr._facilier-charlatan-foil.png"
28 | },
29 | "name": "Dr. Facilier",
30 | "flavor-text": "\\\"Enchantee. A tip of the hat from Dr. Facilier.\\\"",
31 | "ink-cost": 2,
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/dragon_fire.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 130,
4 | "color": "Ruby",
5 | "artist": "Luis Huerta",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "inkable": false,
9 | "body-text": "Banish chosen character",
10 | "effect": "Banish chosen character",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/dragon_fire/dragon_fire-small.png",
13 | "no-art": "https://lorcana-api.com/images/dragon_fire/dragon_fire-no-art.png",
14 | "large": "https://lorcana-api.com/images/dragon_fire/dragon_fire-large.png",
15 | "art-crop": "https://lorcana-api.com/images/dragon_fire/dragon_fire-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/dragon_fire/dragon_fire-medium.png",
17 | "foil": "https://lorcana-api.com/images/dragon_fire/dragon_fire-foil.png"
18 | },
19 | "name": "Dragon Fire",
20 | "ink-cost": 5,
21 | "flavor-text": "",
22 | "rarity": "Uncommon"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/elsa-queen_regent.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 40,
6 | "color": "Amethyst",
7 | "strength": 4,
8 | "artist": "Duyen Nguyen / Aubrey Archer",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Queen",
15 | "Sorcerer"
16 | ],
17 | "set-code": "TFC",
18 | "abilities": {},
19 | "inkable": true,
20 | "body-text": "",
21 | "subtitle": "Queen Regent",
22 | "image-urls": {
23 | "small": "https://lorcana-api.com/images/elsa/queen_regent/elsa-queen_regent-small.png",
24 | "no-art": "https://lorcana-api.com/images/elsa/queen_regent/elsa-queen_regent-no-art.png",
25 | "large": "https://lorcana-api.com/images/elsa/queen_regent/elsa-queen_regent-large.png",
26 | "art-crop": "https://lorcana-api.com/images/elsa/queen_regent/elsa-queen_regent-art-crop.png",
27 | "medium": "https://lorcana-api.com/images/elsa/queen_regent/elsa-queen_regent-medium.png",
28 | "foil": "https://lorcana-api.com/images/elsa/queen_regent/elsa-queen_regent-foil.png"
29 | },
30 | "name": "Elsa",
31 | "ink-cost": 4,
32 | "flavor-text": "\"I never knew what I was capable of.\"",
33 | "rarity": "Common"
34 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/elsa-snow_queen.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 41,
6 | "color": "Amethyst",
7 | "strength": 2,
8 | "artist": "Nicholas Kole",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Hero",
14 | "Queen",
15 | "Sorcerer"
16 | ],
17 | "set-code": "TFC",
18 | "abilities": {"Freeze": "{t} - Excert chosen opposing character."},
19 | "inkable": true,
20 | "body-text": "FREEZE: {t} - Excert chosen opposing character.",
21 | "subtitle": "Snow Queen",
22 | "image-urls": {
23 | "small": "https://lorcana-api.com/images/elsa/snow_queen/elsa-snow_queen-small.png",
24 | "no-art": "https://lorcana-api.com/images/elsa/snow_queen/elsa-snow_queen-no-art.png",
25 | "large": "https://lorcana-api.com/images/elsa/snow_queen/elsa-snow_queen-large.png",
26 | "art-crop": "https://lorcana-api.com/images/elsa/snow_queen/elsa-snow_queen-art-crop.png",
27 | "medium": "https://lorcana-api.com/images/elsa/snow_queen/elsa-snow_queen-medium.png",
28 | "foil": "https://lorcana-api.com/images/elsa/snow_queen/elsa-snow_queen-foil.png"
29 | },
30 | "name": "Elsa",
31 | "flavor-text": "Recreated by magical ink, Elsa found herself in an entirely new world. Fortunately, ice works the same way everywhere.",
32 | "ink-cost": 3,
33 | "rarity": "Uncommon"
34 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/eye_of_the_fates.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 167,
4 | "color": "Sapphire",
5 | "artist": "Ron Baird",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"See The Future": "{t} - Chosen character gets +1{lore} this turn."},
9 | "inkable": true,
10 | "body-text": "SEE THE FUTURE: {t} - Chosen character gets +1{lore} this turn.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/eye_of_the_fates/eye_of_the_fates-small.png",
14 | "no-art": "https://lorcana-api.com/images/eye_of_the_fates/eye_of_the_fates-no-art.png",
15 | "large": "https://lorcana-api.com/images/eye_of_the_fates/eye_of_the_fates-large.png",
16 | "art-crop": "https://lorcana-api.com/images/eye_of_the_fates/eye_of_the_fates-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/eye_of_the_fates/eye_of_the_fates-medium.png",
18 | "foil": "https://lorcana-api.com/images/eye_of_the_fates/eye_of_the_fates-foil.png"
19 | },
20 | "name": "Eye Of The Fates",
21 | "ink-cost": 4,
22 | "flavor-text": "You can change the future once you know what you're looking at.",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/fan_the_flames.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 131,
4 | "color": "Ruby",
5 | "artist": "Jenna Gray",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Ready chosen character. They can't quest for the rest of this turn.",
11 | "effect": "Ready chosen character. They can't quest for the rest of this turn.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/fan_the_flames/fan_the_flames-small.png",
14 | "no-art": "https://lorcana-api.com/images/fan_the_flames/fan_the_flames-no-art.png",
15 | "large": "https://lorcana-api.com/images/fan_the_flames/fan_the_flames-large.png",
16 | "art-crop": "https://lorcana-api.com/images/fan_the_flames/fan_the_flames-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/fan_the_flames/fan_the_flames-medium.png",
18 | "foil": "https://lorcana-api.com/images/fan_the_flames/fan_the_flames-foil.png"
19 | },
20 | "name": "Fan The Flames",
21 | "ink-cost": 1,
22 | "flavor-text": "Pretty words can move a crowd, but so can ugly ones.",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/fire_the_cannons!.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 197,
4 | "color": "Steel",
5 | "artist": "Matt Chapman",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "inkable": false,
9 | "body-text": "Deal 2 damage to chosen character",
10 | "effect": "Deal 2 damage to chosen character",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/fire_the_cannons!/fire_the_cannons!-small.png",
13 | "no-art": "https://lorcana-api.com/images/fire_the_cannons!/fire_the_cannons!-no-art.png",
14 | "large": "https://lorcana-api.com/images/fire_the_cannons!/fire_the_cannons!-large.png",
15 | "art-crop": "https://lorcana-api.com/images/fire_the_cannons!/fire_the_cannons!-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/fire_the_cannons!/fire_the_cannons!-medium.png",
17 | "foil": "https://lorcana-api.com/images/fire_the_cannons!/fire_the_cannons!-foil.png"
18 | },
19 | "name": "Fire The Cannons!",
20 | "ink-cost": 1,
21 | "flavor-text": "Captain Hook: \"Double the powder and shorten the fuse!\" Mr. Smee: \"Shorten the powder and double the fuse!\"",
22 | "rarity": "Common"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/fishbone_quill.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 168,
4 | "color": "Sapphire",
5 | "artist": "Tanisha Cherislin",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Go Ahead And Sing": "{t} - Put any card from your hand into your inkwell facedown"},
9 | "inkable": true,
10 | "body-text": "GO AHEAD AND SING: {t} - Put any card from your hand into your inkwell facedown",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/fishbone_quill/fishbone_quill-small.png",
14 | "no-art": "https://lorcana-api.com/images/fishbone_quill/fishbone_quill-no-art.png",
15 | "large": "https://lorcana-api.com/images/fishbone_quill/fishbone_quill-large.png",
16 | "art-crop": "https://lorcana-api.com/images/fishbone_quill/fishbone_quill-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/fishbone_quill/fishbone_quill-medium.png",
18 | "foil": "https://lorcana-api.com/images/fishbone_quill/fishbone_quill-foil.png"
19 | },
20 | "name": "Fishbone Quill",
21 | "ink-cost": 3,
22 | "flavor-text": "\"If you want tot cross the bridge, my sweet, you've got to pay the toll.\" -Ursula",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/flotsam-ursula's_spy.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": ["Rush"],
4 | "set": "The First Chapter",
5 | "card-number": 43,
6 | "color": "Amethyst",
7 | "strength": 3,
8 | "artist": "Luis Huerta",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Dexterous Lunge": "Your characters named Jetsam gain Rush"},
17 | "inkable": false,
18 | "body-text": "Rush (This character can challenge the turn they're played.) \nDEXTEROUS LUNGE: Your characters named Jetsam gain Rush.",
19 | "subtitle": "Ursula's Spy",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/flotsam/ursula's_spy/flotsam-ursula's_spy-small.png",
22 | "no-art": "https://lorcana-api.com/images/flotsam/ursula's_spy/flotsam-ursula's_spy-no-art.png",
23 | "large": "https://lorcana-api.com/images/flotsam/ursula's_spy/flotsam-ursula's_spy-large.png",
24 | "art-crop": "https://lorcana-api.com/images/flotsam/ursula's_spy/flotsam-ursula's_spy-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/flotsam/ursula's_spy/flotsam-ursula's_spy-medium.png",
26 | "foil": "https://lorcana-api.com/images/flotsam/ursula's_spy/flotsam-ursula's_spy-foil.png"
27 | },
28 | "name": "Flotsam",
29 | "ink-cost": 5,
30 | "flavor-text": "We know someone who can help you... for a price.",
31 | "rarity": "Rare"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/flounder-voice_of_reason.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 145,
6 | "color": "Sapphire",
7 | "strength": 2,
8 | "artist": "Brian Weiyz",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Voice Of Reason",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/flounder/voice_of_reason/flounder-voice_of_reason-small.png",
22 | "no-art": "https://lorcana-api.com/images/flounder/voice_of_reason/flounder-voice_of_reason-no-art.png",
23 | "large": "https://lorcana-api.com/images/flounder/voice_of_reason/flounder-voice_of_reason-large.png",
24 | "art-crop": "https://lorcana-api.com/images/flounder/voice_of_reason/flounder-voice_of_reason-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/flounder/voice_of_reason/flounder-voice_of_reason-medium.png",
26 | "foil": "https://lorcana-api.com/images/flounder/voice_of_reason/flounder-voice_of_reason-foil.png"
27 | },
28 | "name": "Flounder",
29 | "flavor-text": "\"Excitment... adventure... danger lurking around ever cor- AAAAAGGH!\"",
30 | "ink-cost": 1,
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/freeze.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 63,
4 | "color": "Amethyst",
5 | "artist": "Cristian Romero",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Exert chosen opposing character",
11 | "effect": "Exert chosen opposing character",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/freeze/freeze-small.png",
14 | "no-art": "https://lorcana-api.com/images/freeze/freeze-no-art.png",
15 | "large": "https://lorcana-api.com/images/freeze/freeze-large.png",
16 | "art-crop": "https://lorcana-api.com/images/freeze/freeze-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/freeze/freeze-medium.png",
18 | "foil": "https://lorcana-api.com/images/freeze/freeze-foil.png"
19 | },
20 | "name": "Freeze",
21 | "ink-cost": 2,
22 | "flavor-text": "It's time for you to chill",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/friends_on_the_other_side.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 64,
4 | "color": "Amethyst",
5 | "artist": "Amber Kommavongsa",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Draw 2 Cards",
11 | "effect": "Draw 2 Cards",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/friends_on_the_other_side/friends_on_the_other_side-small.png",
14 | "no-art": "https://lorcana-api.com/images/friends_on_the_other_side/friends_on_the_other_side-no-art.png",
15 | "large": "https://lorcana-api.com/images/friends_on_the_other_side/friends_on_the_other_side-large.png",
16 | "art-crop": "https://lorcana-api.com/images/friends_on_the_other_side/friends_on_the_other_side-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/friends_on_the_other_side/friends_on_the_other_side-medium.png",
18 | "foil": "https://lorcana-api.com/images/friends_on_the_other_side/friends_on_the_other_side-foil.png"
19 | },
20 | "name": "Friends On The Other Side",
21 | "ink-cost": 3,
22 | "flavor-text": "The cards, the cards\\nthecards will tell...",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/frying_pan.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 202,
4 | "color": "Steel",
5 | "artist": "Kamil Murzyn",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"CLANG!": "Banish this item - Chosen character can't challenge during their next turn."},
9 | "inkable": true,
10 | "body-text": "CLANG!: Banish this item - Chosen character can't challenge during their next turn.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/frying_pan/frying_pan-small.png",
14 | "no-art": "https://lorcana-api.com/images/frying_pan/frying_pan-no-art.png",
15 | "large": "https://lorcana-api.com/images/frying_pan/frying_pan-large.png",
16 | "art-crop": "https://lorcana-api.com/images/frying_pan/frying_pan-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/frying_pan/frying_pan-medium.png",
18 | "foil": "https://lorcana-api.com/images/frying_pan/frying_pan-foil.png"
19 | },
20 | "name": "Frying Pan",
21 | "ink-cost": 2,
22 | "flavor-text": "It's a fine piece of cookware, but as a weapon it's truly stunning.",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/gaston-arrogant_hunter.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": ["Reckless"],
4 | "set": "The First Chapter",
5 | "card-number": 110,
6 | "color": "Ruby",
7 | "strength": 4,
8 | "artist": "Matthew Robert Davies",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Reckless (This character can't quest and must challenge each turn if able.) ",
19 | "subtitle": "Arrogant Hunter",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/gaston/arrogant_hunter/gaston-arrogant_hunter-small.png",
22 | "no-art": "https://lorcana-api.com/images/gaston/arrogant_hunter/gaston-arrogant_hunter-no-art.png",
23 | "large": "https://lorcana-api.com/images/gaston/arrogant_hunter/gaston-arrogant_hunter-large.png",
24 | "art-crop": "https://lorcana-api.com/images/gaston/arrogant_hunter/gaston-arrogant_hunter-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/gaston/arrogant_hunter/gaston-arrogant_hunter-medium.png",
26 | "foil": "https://lorcana-api.com/images/gaston/arrogant_hunter/gaston-arrogant_hunter-foil.png"
27 | },
28 | "name": "Gaston",
29 | "ink-cost": 2,
30 | "flavor-text": "It's not arrogance when you really are the best",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/genie-the_ever_impressive.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 77,
6 | "color": "Emerald",
7 | "strength": 2,
8 | "artist": "Matt Chapman",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "The Ever Impressive",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/genie/the_ever_impressive/genie-the_ever_impressive-small.png",
22 | "no-art": "https://lorcana-api.com/images/genie/the_ever_impressive/genie-the_ever_impressive-no-art.png",
23 | "large": "https://lorcana-api.com/images/genie/the_ever_impressive/genie-the_ever_impressive-large.png",
24 | "art-crop": "https://lorcana-api.com/images/genie/the_ever_impressive/genie-the_ever_impressive-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/genie/the_ever_impressive/genie-the_ever_impressive-medium.png",
26 | "foil": "https://lorcana-api.com/images/genie/the_ever_impressive/genie-the_ever_impressive-foil.png"
27 | },
28 | "name": "Genie",
29 | "ink-cost": 2,
30 | "flavor-text": "\"You can wish for nearly anything! Do you want the short version, or should I give you the whole song and dance?\"",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/goofy-daredevil.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 0,
5 | "card-number": 111,
6 | "color": "Ruby",
7 | "strength": 3,
8 | "artist": "Kenneth Anderson",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Daredevil",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/goofy/daredevil/goofy-daredevil-small.png",
22 | "no-art": "https://lorcana-api.com/images/goofy/daredevil/goofy-daredevil-no-art.png",
23 | "large": "https://lorcana-api.com/images/goofy/daredevil/goofy-daredevil-large.png",
24 | "art-crop": "https://lorcana-api.com/images/goofy/daredevil/goofy-daredevil-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/goofy/daredevil/goofy-daredevil-medium.png",
26 | "foil": "https://lorcana-api.com/images/goofy/daredevil/goofy-daredevil-foil.png"
27 | },
28 | "name": "Goofy",
29 | "flavor-text": "Sometimes you gotta give it the ol' jump and hyuck.",
30 | "ink-cost": 5,
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/goons-maleficent's_underlings.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 179,
6 | "color": "Steel",
7 | "strength": 2,
8 | "artist": "Cam Kendall",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Maleficent's Underlings",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/goons/maleficent's_underlings/goons-maleficent's_underlings-small.png",
22 | "no-art": "https://lorcana-api.com/images/goons/maleficent's_underlings/goons-maleficent's_underlings-no-art.png",
23 | "large": "https://lorcana-api.com/images/goons/maleficent's_underlings/goons-maleficent's_underlings-large.png",
24 | "art-crop": "https://lorcana-api.com/images/goons/maleficent's_underlings/goons-maleficent's_underlings-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/goons/maleficent's_underlings/goons-maleficent's_underlings-medium.png",
26 | "foil": "https://lorcana-api.com/images/goons/maleficent's_underlings/goons-maleficent's_underlings-foil.png"
27 | },
28 | "name": "Goons",
29 | "flavor-text": "They may seem useless, but they came with the castle.",
30 | "ink-cost": 1,
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/grab_your_sword.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 198,
4 | "color": "Steel",
5 | "artist": "Peter Brockhammer",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Dead 2 damage to each opposing character.",
11 | "effect": "Dead 2 damage to each opposing character.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/grab_your_sword/grab_your_sword-small.png",
14 | "no-art": "https://lorcana-api.com/images/grab_your_sword/grab_your_sword-no-art.png",
15 | "large": "https://lorcana-api.com/images/grab_your_sword/grab_your_sword-large.png",
16 | "art-crop": "https://lorcana-api.com/images/grab_your_sword/grab_your_sword-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/grab_your_sword/grab_your_sword-medium.png",
18 | "foil": "https://lorcana-api.com/images/grab_your_sword/grab_your_sword-foil.png"
19 | },
20 | "name": "Grab Your Sword",
21 | "ink-cost": 5,
22 | "flavor-text": "We don't like\\nWhat we don't understand\\nIn fact, it scares us",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/hakuna_matata.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 27,
4 | "color": "Amber",
5 | "artist": "Juan Diego Leon",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Remove up to 3 damage from each of your characters.",
11 | "effect": "Remove up to 3 damage from each of your characters.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/hakuna_matata/hakuna_matata-small.png",
14 | "no-art": "https://lorcana-api.com/images/hakuna_matata/hakuna_matata-no-art.png",
15 | "large": "https://lorcana-api.com/images/hakuna_matata/hakuna_matata-large.png",
16 | "art-crop": "https://lorcana-api.com/images/hakuna_matata/hakuna_matata-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/hakuna_matata/hakuna_matata-medium.png",
18 | "foil": "https://lorcana-api.com/images/hakuna_matata/hakuna_matata-foil.png"
19 | },
20 | "name": "Hakuna Matata",
21 | "ink-cost": 4,
22 | "flavor-text": "What a wonderful phrase!",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/hans-scheming_prince.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 3,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 78,
6 | "color": "Emerald",
7 | "strength": 3,
8 | "artist": "Massimiliano Narciso",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Scheming Prince",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/hans/scheming_prince/hans-scheming_prince-small.png",
23 | "no-art": "https://lorcana-api.com/images/hans/scheming_prince/hans-scheming_prince-no-art.png",
24 | "large": "https://lorcana-api.com/images/hans/scheming_prince/hans-scheming_prince-large.png",
25 | "art-crop": "https://lorcana-api.com/images/hans/scheming_prince/hans-scheming_prince-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/hans/scheming_prince/hans-scheming_prince-medium.png",
27 | "foil": "https://lorcana-api.com/images/hans/scheming_prince/hans-scheming_prince-foil.png"
28 | },
29 | "name": "Hans",
30 | "ink-cost": 4,
31 | "flavor-text": "Rules are like older siblings. All they do is get in the way.",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/he's_got_a_sword!.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 132,
4 | "color": "Ruby",
5 | "artist": "Koni",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Chosen Character gets +2 {strength} this turn.",
11 | "effect": "Chosen Character gets +2 {strength} this turn.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/he's_got_a_sword!/he's_got_a_sword!-small.png",
14 | "no-art": "https://lorcana-api.com/images/he's_got_a_sword!/he's_got_a_sword!-no-art.png",
15 | "large": "https://lorcana-api.com/images/he's_got_a_sword!/he's_got_a_sword!-large.png",
16 | "art-crop": "https://lorcana-api.com/images/he's_got_a_sword!/he's_got_a_sword!-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/he's_got_a_sword!/he's_got_a_sword!-medium.png",
18 | "foil": "https://lorcana-api.com/images/he's_got_a_sword!/he's_got_a_sword!-foil.png"
19 | },
20 | "name": "He's Got A Sword!",
21 | "ink-cost": 1,
22 | "flavor-text": "\"We've all got swords!\" - Razoul",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/healing_glow.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 28,
4 | "color": "Amber",
5 | "artist": "Philipp Kruse",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "inkable": true,
9 | "body-text": "Remove up to 2 damage from chosen character",
10 | "effect": "Remove up to 2 damage from chosen character",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/healing_glow/healing_glow-small.png",
13 | "no-art": "https://lorcana-api.com/images/healing_glow/healing_glow-no-art.png",
14 | "large": "https://lorcana-api.com/images/healing_glow/healing_glow-large.png",
15 | "art-crop": "https://lorcana-api.com/images/healing_glow/healing_glow-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/healing_glow/healing_glow-medium.png",
17 | "foil": "https://lorcana-api.com/images/healing_glow/healing_glow-foil.png"
18 | },
19 | "name": "Healing Glow",
20 | "ink-cost": 1,
21 | "flavor-text": "\\\"Don't freak out!\\\" - Rapunzel",
22 | "rarity": "Common"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/heihei-boat_snack.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": ["Support"],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 7,
6 | "color": "Amber",
7 | "strength": 1,
8 | "artist": "Jenna Gray",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Support (When this character quests, you may add their {strength} to another chosen character's {strength} this turn.) ",
19 | "subtitle": "Boat Snack",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/heihei/boat_snack/heihei-boat_snack-small.png",
22 | "no-art": "https://lorcana-api.com/images/heihei/boat_snack/heihei-boat_snack-no-art.png",
23 | "large": "https://lorcana-api.com/images/heihei/boat_snack/heihei-boat_snack-large.png",
24 | "art-crop": "https://lorcana-api.com/images/heihei/boat_snack/heihei-boat_snack-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/heihei/boat_snack/heihei-boat_snack-medium.png",
26 | "foil": "https://lorcana-api.com/images/heihei/boat_snack/heihei-boat_snack-foil.png"
27 | },
28 | "name": "Heihei",
29 | "flavor-text": "\\\"Sometimes, our strengths lie beneath the surface. Far beneath, in some cases...\\\" -Moana",
30 | "ink-cost": 1,
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/horace-no-good_scoundrel.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 79,
6 | "color": "Emerald",
7 | "strength": 4,
8 | "artist": "Isaiah Mesq",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "No-Good Scoundrel",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/horace/no-good_scoundrel/horace-no-good_scoundrel-small.png",
22 | "no-art": "https://lorcana-api.com/images/horace/no-good_scoundrel/horace-no-good_scoundrel-no-art.png",
23 | "large": "https://lorcana-api.com/images/horace/no-good_scoundrel/horace-no-good_scoundrel-large.png",
24 | "art-crop": "https://lorcana-api.com/images/horace/no-good_scoundrel/horace-no-good_scoundrel-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/horace/no-good_scoundrel/horace-no-good_scoundrel-medium.png",
26 | "foil": "https://lorcana-api.com/images/horace/no-good_scoundrel/horace-no-good_scoundrel-foil.png"
27 | },
28 | "name": "Horace",
29 | "ink-cost": 3,
30 | "flavor-text": "\"Well, they ain't in here, Jasper.\"",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/if_it's_not_baroque.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 162,
4 | "color": "Sapphire",
5 | "artist": "Kenneth Anderson",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Return an item card from your discard to your hand.",
11 | "effect": "Return an item card from your discard to your hand.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/if_it's_not_baroque/if_it's_not_baroque-small.png",
14 | "no-art": "https://lorcana-api.com/images/if_it's_not_baroque/if_it's_not_baroque-no-art.png",
15 | "large": "https://lorcana-api.com/images/if_it's_not_baroque/if_it's_not_baroque-large.png",
16 | "art-crop": "https://lorcana-api.com/images/if_it's_not_baroque/if_it's_not_baroque-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/if_it's_not_baroque/if_it's_not_baroque-medium.png",
18 | "foil": "https://lorcana-api.com/images/if_it's_not_baroque/if_it's_not_baroque-foil.png"
19 | },
20 | "name": "If It's Not Baroque",
21 | "ink-cost": 3,
22 | "flavor-text": "\"...Don't fix it\"",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/jafar-keeper_of_secrets.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 44,
6 | "color": "Amethyst",
7 | "strength": 0,
8 | "artist": "Marcel Berg",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Hidden Wonders": "This character gets +1{strength} for each card in your hand."},
18 | "inkable": true,
19 | "body-text": "HIDDEN WONDERS: This character gets +1{strength} for each card in your hand.",
20 | "subtitle": "Keeper of Secrets",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/jafar/keeper_of_secrets/jafar-keeper_of_secrets-small.png",
23 | "no-art": "https://lorcana-api.com/images/jafar/keeper_of_secrets/jafar-keeper_of_secrets-no-art.png",
24 | "large": "https://lorcana-api.com/images/jafar/keeper_of_secrets/jafar-keeper_of_secrets-large.png",
25 | "art-crop": "https://lorcana-api.com/images/jafar/keeper_of_secrets/jafar-keeper_of_secrets-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/jafar/keeper_of_secrets/jafar-keeper_of_secrets-medium.png",
27 | "foil": "https://lorcana-api.com/images/jafar/keeper_of_secrets/jafar-keeper_of_secrets-foil.png"
28 | },
29 | "name": "Jafar",
30 | "ink-cost": 4,
31 | "flavor-text": "There's more than one way to bury secrets.",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/jafar-wicked_sorcerer.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": ["Challenger 3"],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 45,
6 | "color": "Amethyst",
7 | "strength": 2,
8 | "artist": "Jake Parker",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "Challenger 3 When challenging, this character get +3{strength}.) ",
20 | "subtitle": "Wicked Sorcerer",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/jafar/wicked_sorcerer/jafar-wicked_sorcerer-small.png",
23 | "no-art": "https://lorcana-api.com/images/jafar/wicked_sorcerer/jafar-wicked_sorcerer-no-art.png",
24 | "large": "https://lorcana-api.com/images/jafar/wicked_sorcerer/jafar-wicked_sorcerer-large.png",
25 | "art-crop": "https://lorcana-api.com/images/jafar/wicked_sorcerer/jafar-wicked_sorcerer-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/jafar/wicked_sorcerer/jafar-wicked_sorcerer-medium.png",
27 | "foil": "https://lorcana-api.com/images/jafar/wicked_sorcerer/jafar-wicked_sorcerer-foil.png"
28 | },
29 | "name": "Jafar",
30 | "flavor-text": "\\\"Enough skulking about. It's time to show that sniveling sultan what a sorcerer can do.\\\"",
31 | "ink-cost": 4,
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/jasmine-disguised.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 2,
5 | "card-number": 148,
6 | "color": "Sapphire",
7 | "strength": 3,
8 | "artist": "R. La Barbera/L. Giammichele",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Princess"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Disguised",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/jasmine/disguised/jasmine-disguised-small.png",
22 | "no-art": "https://lorcana-api.com/images/jasmine/disguised/jasmine-disguised-no-art.png",
23 | "large": "https://lorcana-api.com/images/jasmine/disguised/jasmine-disguised-large.png",
24 | "art-crop": "https://lorcana-api.com/images/jasmine/disguised/jasmine-disguised-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/jasmine/disguised/jasmine-disguised-medium.png",
26 | "foil": "https://lorcana-api.com/images/jasmine/disguised/jasmine-disguised-foil.png"
27 | },
28 | "name": "Jasmine",
29 | "flavor-text": "\\\"Try to understand. I've never done a thing on my own. I've never had any real friends.... I've never even been outside the palace walls.\\\"",
30 | "ink-cost": 3,
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/jasper-common_crook.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 81,
6 | "color": "Emerald",
7 | "strength": 2,
8 | "artist": "Jochem Van Gool",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Puppynapping": "Whenever this character quests, chosen character can't quest during their next turn."},
17 | "inkable": true,
18 | "body-text": "PUPPYNAPPING: Whenever this character quests, chosen character can't quest during their next turn.",
19 | "subtitle": "Common Crook",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/jasper/common_crook/jasper-common_crook-small.png",
22 | "no-art": "https://lorcana-api.com/images/jasper/common_crook/jasper-common_crook-no-art.png",
23 | "large": "https://lorcana-api.com/images/jasper/common_crook/jasper-common_crook-large.png",
24 | "art-crop": "https://lorcana-api.com/images/jasper/common_crook/jasper-common_crook-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/jasper/common_crook/jasper-common_crook-medium.png",
26 | "foil": "https://lorcana-api.com/images/jasper/common_crook/jasper-common_crook-foil.png"
27 | },
28 | "name": "Jasper",
29 | "ink-cost": 3,
30 | "flavor-text": "\"Now, look here, Horace, I warned you about thinkin'.\"",
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/jetsam-ursula's_spy.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": ["Evasive"],
4 | "set": "The First Chapter",
5 | "card-number": 46,
6 | "color": "Amethyst",
7 | "strength": 3,
8 | "artist": "Brian Weisz",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Sinister Slither": "Your characters named Flotsam gain Evasive."},
17 | "inkable": true,
18 | "body-text": "Evasive (Only characters with Evasive can challenge this character.) \nSINISTER SLITHER: Your characters named Flotsam gain Evasive.",
19 | "subtitle": "Ursula's Spy",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/jetsam/ursula's_spy/jetsam-ursula's_spy-small.png",
22 | "no-art": "https://lorcana-api.com/images/jetsam/ursula's_spy/jetsam-ursula's_spy-no-art.png",
23 | "large": "https://lorcana-api.com/images/jetsam/ursula's_spy/jetsam-ursula's_spy-large.png",
24 | "art-crop": "https://lorcana-api.com/images/jetsam/ursula's_spy/jetsam-ursula's_spy-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/jetsam/ursula's_spy/jetsam-ursula's_spy-medium.png",
26 | "foil": "https://lorcana-api.com/images/jetsam/ursula's_spy/jetsam-ursula's_spy-foil.png"
27 | },
28 | "name": "Jetsam",
29 | "ink-cost": 4,
30 | "flavor-text": "We can help you get anything you want....",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/just_in_time.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 29,
4 | "color": "Amber",
5 | "artist": "Leonardo Giammichele",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "inkable": true,
9 | "body-text": "You may play a character with cost 5 or less for free.",
10 | "effect": "You may play a character with cost 5 or less for free.",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/just_in_time/just_in_time-small.png",
13 | "no-art": "https://lorcana-api.com/images/just_in_time/just_in_time-no-art.png",
14 | "large": "https://lorcana-api.com/images/just_in_time/just_in_time-large.png",
15 | "art-crop": "https://lorcana-api.com/images/just_in_time/just_in_time-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/just_in_time/just_in_time-medium.png",
17 | "foil": "https://lorcana-api.com/images/just_in_time/just_in_time-foil.png"
18 | },
19 | "name": "Just In Time",
20 | "ink-cost": 3,
21 | "flavor-text": "The best heroes always arrive at the perfect moment-whether they know it or not.",
22 | "rarity": "Rare"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/kronk-right-hand_man.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 183,
6 | "color": "Steel",
7 | "strength": 6,
8 | "artist": "Jake Parker",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Right-Hand Man",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/kronk/right-hand_man/kronk-right-hand_man-small.png",
22 | "no-art": "https://lorcana-api.com/images/kronk/right-hand_man/kronk-right-hand_man-no-art.png",
23 | "large": "https://lorcana-api.com/images/kronk/right-hand_man/kronk-right-hand_man-large.png",
24 | "art-crop": "https://lorcana-api.com/images/kronk/right-hand_man/kronk-right-hand_man-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/kronk/right-hand_man/kronk-right-hand_man-medium.png",
26 | "foil": "https://lorcana-api.com/images/kronk/right-hand_man/kronk-right-hand_man-foil.png"
27 | },
28 | "name": "Kronk",
29 | "ink-cost": 6,
30 | "flavor-text": "\"Oh yeah. It's all coming together!\"",
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/lantern.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 33,
4 | "color": "Amber",
5 | "artist": "Eri Welli",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Birthday Lights": "{t}- You play 1? less for the next character you play this turn"},
9 | "inkable": false,
10 | "body-text": "BIRTHDAY LIGHTS: {t}- You play 1? less for the next character you play this turn",
11 | "effect": null,
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/lantern/lantern-small.png",
14 | "no-art": "https://lorcana-api.com/images/lantern/lantern-no-art.png",
15 | "large": "https://lorcana-api.com/images/lantern/lantern-large.png",
16 | "art-crop": "https://lorcana-api.com/images/lantern/lantern-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/lantern/lantern-medium.png",
18 | "foil": "https://lorcana-api.com/images/lantern/lantern-foil.png"
19 | },
20 | "name": "Lantern",
21 | "ink-cost": 2,
22 | "flavor-text": "Lanterns fill the sky on one special night, beacons of hope and love",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/lefou-bumbler.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 2,
5 | "card-number": 8,
6 | "color": "Amber",
7 | "strength": 1,
8 | "artist": "Andrey Chomak",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Loyal": "If you have a character named Gaston in play, you pay 1? less to play this character."},
17 | "inkable": true,
18 | "body-text": "LOYAL: If you have a character named Gaston in play, you pay 1? less to play this character.",
19 | "subtitle": "Bumbler",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/lefou/bumbler/lefou-bumbler-small.png",
22 | "no-art": "https://lorcana-api.com/images/lefou/bumbler/lefou-bumbler-no-art.png",
23 | "large": "https://lorcana-api.com/images/lefou/bumbler/lefou-bumbler-large.png",
24 | "art-crop": "https://lorcana-api.com/images/lefou/bumbler/lefou-bumbler-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/lefou/bumbler/lefou-bumbler-medium.png",
26 | "foil": "https://lorcana-api.com/images/lefou/bumbler/lefou-bumbler-foil.png"
27 | },
28 | "name": "Lefou",
29 | "flavor-text": "You need a good today to be a proper bad guy",
30 | "ink-cost": 2,
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/lefou-instigator.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 112,
6 | "color": "Ruby",
7 | "strength": 2,
8 | "artist": "Gaku Kumatori",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Fan The Flames": "When you play this character, ready chosen character, They can't quest for the rest of this turn."},
17 | "inkable": true,
18 | "body-text": "FAN THE FLAMES: When you play this character, ready chosen character, They can't quest for the rest of this turn.",
19 | "subtitle": "Instigator",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/lefou/instigator/lefou-instigator-small.png",
22 | "no-art": "https://lorcana-api.com/images/lefou/instigator/lefou-instigator-no-art.png",
23 | "large": "https://lorcana-api.com/images/lefou/instigator/lefou-instigator-large.png",
24 | "art-crop": "https://lorcana-api.com/images/lefou/instigator/lefou-instigator-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/lefou/instigator/lefou-instigator-medium.png",
26 | "foil": "https://lorcana-api.com/images/lefou/instigator/lefou-instigator-foil.png"
27 | },
28 | "name": "Lefou",
29 | "ink-cost": 2,
30 | "flavor-text": "All a mob needs is a push in the wrong direction",
31 | "rarity": "Rare"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/let_it_go.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 163,
4 | "color": "Sapphire",
5 | "artist": "Milica Celikovic",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "inkable": true,
9 | "body-text": "Put chosen character into their player's inkwell facedown and exerted",
10 | "effect": "Put chosen character into their player's inkwell facedown and exerted",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/let_it_go/let_it_go-small.png",
13 | "no-art": "https://lorcana-api.com/images/let_it_go/let_it_go-no-art.png",
14 | "large": "https://lorcana-api.com/images/let_it_go/let_it_go-large.png",
15 | "art-crop": "https://lorcana-api.com/images/let_it_go/let_it_go-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/let_it_go/let_it_go-medium.png",
17 | "foil": "https://lorcana-api.com/images/let_it_go/let_it_go-foil.png"
18 | },
19 | "name": "Let It Go",
20 | "ink-cost": 5,
21 | "flavor-text": "It's time to see what I can do \nTo test the limits and break through",
22 | "rarity": "Rare"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/lilo-galactic_hero.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 184,
6 | "color": "Steel",
7 | "strength": 4,
8 | "artist": "Jared Nickerl",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Galactic Hero",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/lilo/galactic_hero/lilo-galactic_hero-small.png",
22 | "no-art": "https://lorcana-api.com/images/lilo/galactic_hero/lilo-galactic_hero-no-art.png",
23 | "large": "https://lorcana-api.com/images/lilo/galactic_hero/lilo-galactic_hero-large.png",
24 | "art-crop": "https://lorcana-api.com/images/lilo/galactic_hero/lilo-galactic_hero-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/lilo/galactic_hero/lilo-galactic_hero-medium.png",
26 | "foil": "https://lorcana-api.com/images/lilo/galactic_hero/lilo-galactic_hero-foil.png"
27 | },
28 | "name": "Lilo",
29 | "ink-cost": 3,
30 | "flavor-text": "\"Space. That's where the aliens come from. And also tourists!\"",
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/lilo-making_a_wish.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 9,
6 | "color": "Amber",
7 | "strength": 1,
8 | "artist": "Dave Beauchene",
9 | "willpower": 1,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": false,
18 | "body-text": "",
19 | "subtitle": "Making a Wish",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/lilo/making_a_wish/lilo-making_a_wish-small.png",
22 | "no-art": "https://lorcana-api.com/images/lilo/making_a_wish/lilo-making_a_wish-no-art.png",
23 | "large": "https://lorcana-api.com/images/lilo/making_a_wish/lilo-making_a_wish-large.png",
24 | "art-crop": "https://lorcana-api.com/images/lilo/making_a_wish/lilo-making_a_wish-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/lilo/making_a_wish/lilo-making_a_wish-medium.png",
26 | "foil": "https://lorcana-api.com/images/lilo/making_a_wish/lilo-making_a_wish-foil.png"
27 | },
28 | "name": "Lilo",
29 | "ink-cost": 1,
30 | "flavor-text": "A falling star... I have to make a wish!",
31 | "rarity": "Rare"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/mad_hatter-gracious_host.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 3,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 86,
6 | "color": "Emerald",
7 | "strength": 2,
8 | "artist": "Rosa la Barvera",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": ["Storyborn"],
12 | "set-code": "TFC",
13 | "abilities": {"Tea Party": "Whenever this character is challenged, you may draw a card."},
14 | "inkable": true,
15 | "body-text": "TEA PARTY: Whenever this character is challenged, you may draw a card.",
16 | "subtitle": "Gracious Host",
17 | "image-urls": {
18 | "small": "https://lorcana-api.com/images/mad_hatter/gracious_host/mad_hatter-gracious_host-small.png",
19 | "no-art": "https://lorcana-api.com/images/mad_hatter/gracious_host/mad_hatter-gracious_host-no-art.png",
20 | "large": "https://lorcana-api.com/images/mad_hatter/gracious_host/mad_hatter-gracious_host-large.png",
21 | "art-crop": "https://lorcana-api.com/images/mad_hatter/gracious_host/mad_hatter-gracious_host-art-crop.png",
22 | "medium": "https://lorcana-api.com/images/mad_hatter/gracious_host/mad_hatter-gracious_host-medium.png",
23 | "foil": "https://lorcana-api.com/images/mad_hatter/gracious_host/mad_hatter-gracious_host-foil.png"
24 | },
25 | "name": "Mad Hatter",
26 | "ink-cost": 5,
27 | "flavor-text": "Mad Hatter: \"Would you like a little more tea?\" Alice: \"I haven't had any yet, so I can't very well take more.\"",
28 | "rarity": "Uncommon"
29 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/magic_golden_flower.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 169,
4 | "color": "Sapphire",
5 | "artist": "Cory Godbey",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Healing Pollen": "Banish this item - Remove up to 3 damage from chosen character."},
9 | "inkable": true,
10 | "body-text": "HEALING POLLEN: Banish this item - Remove up to 3 damage from chosen character.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/magic_golden_flower/magic_golden_flower-small.png",
14 | "no-art": "https://lorcana-api.com/images/magic_golden_flower/magic_golden_flower-no-art.png",
15 | "large": "https://lorcana-api.com/images/magic_golden_flower/magic_golden_flower-large.png",
16 | "art-crop": "https://lorcana-api.com/images/magic_golden_flower/magic_golden_flower-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/magic_golden_flower/magic_golden_flower-medium.png",
18 | "foil": "https://lorcana-api.com/images/magic_golden_flower/magic_golden_flower-foil.png"
19 | },
20 | "name": "Magic Golden Flower",
21 | "ink-cost": 1,
22 | "flavor-text": "\"Once upon a time, a single drop of sunlight fell from the heavens....\" -Flynn Rider",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/magic_mirror.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 66,
4 | "color": "Amethyst",
5 | "artist": "Andrew Trabbold",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "inkable": false,
9 | "effect": "{t}, 4{ink} - Draw a card",
10 | "image-urls": {
11 | "small": "https://lorcana-api.com/images/magic_mirror/magic_mirror-small.png",
12 | "no-art": "https://lorcana-api.com/images/magic_mirror/magic_mirror-no-art.png",
13 | "large": "https://lorcana-api.com/images/magic_mirror/magic_mirror-large.png",
14 | "art-crop": "https://lorcana-api.com/images/magic_mirror/magic_mirror-art-crop.png",
15 | "medium": "https://lorcana-api.com/images/magic_mirror/magic_mirror-medium.png",
16 | "foil": "https://lorcana-api.com/images/magic_mirror/magic_mirror-foil.png"
17 | },
18 | "name": "Magic Mirror",
19 | "ink-cost": 2,
20 | "flavor-text": "\\\"What wouldst thou know, my Queen?\\\"",
21 | "rarity": "Rare"
22 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/maleficent-biding_her_time.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 48,
6 | "color": "Amethyst",
7 | "strength": 1,
8 | "artist": "Grace Tran",
9 | "willpower": 1,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": false,
19 | "body-text": "",
20 | "subtitle": "Biding Her Time",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/maleficent/biding_her_time/maleficent-biding_her_time-small.png",
23 | "no-art": "https://lorcana-api.com/images/maleficent/biding_her_time/maleficent-biding_her_time-no-art.png",
24 | "large": "https://lorcana-api.com/images/maleficent/biding_her_time/maleficent-biding_her_time-large.png",
25 | "art-crop": "https://lorcana-api.com/images/maleficent/biding_her_time/maleficent-biding_her_time-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/maleficent/biding_her_time/maleficent-biding_her_time-medium.png",
27 | "foil": "https://lorcana-api.com/images/maleficent/biding_her_time/maleficent-biding_her_time-foil.png"
28 | },
29 | "name": "Maleficent",
30 | "ink-cost": 1,
31 | "flavor-text": "\"One mustn't rush these things, or the greatest plan might come to nothing.\"",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/maleficent-sorceress.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 49,
6 | "color": "Amethyst",
7 | "strength": 2,
8 | "artist": "Valerio Buonfantino",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Cast My Spell!": "When you play this character, you may draw a card."},
18 | "inkable": true,
19 | "body-text": "CAST MY SPELL!: When you play this character, you may draw a card.",
20 | "subtitle": "Sorceress",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/maleficent/sorceress/maleficent-sorceress-small.png",
23 | "no-art": "https://lorcana-api.com/images/maleficent/sorceress/maleficent-sorceress-no-art.png",
24 | "large": "https://lorcana-api.com/images/maleficent/sorceress/maleficent-sorceress-large.png",
25 | "art-crop": "https://lorcana-api.com/images/maleficent/sorceress/maleficent-sorceress-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/maleficent/sorceress/maleficent-sorceress-medium.png",
27 | "foil": "https://lorcana-api.com/images/maleficent/sorceress/maleficent-sorceress-foil.png"
28 | },
29 | "name": "Maleficent",
30 | "ink-cost": 3,
31 | "flavor-text": "\"You dare challenge me? Fool, my magic is more powerful than you could possibly imagine!\"",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/maleficent-uninvited.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 3,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 151,
6 | "color": "Sapphire",
7 | "strength": 3,
8 | "artist": "Gaku Kumatori",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Uninvited",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/maleficent/uninvited/maleficent-uninvited-small.png",
23 | "no-art": "https://lorcana-api.com/images/maleficent/uninvited/maleficent-uninvited-no-art.png",
24 | "large": "https://lorcana-api.com/images/maleficent/uninvited/maleficent-uninvited-large.png",
25 | "art-crop": "https://lorcana-api.com/images/maleficent/uninvited/maleficent-uninvited-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/maleficent/uninvited/maleficent-uninvited-medium.png",
27 | "foil": "https://lorcana-api.com/images/maleficent/uninvited/maleficent-uninvited-foil.png"
28 | },
29 | "name": "Maleficent",
30 | "ink-cost": 5,
31 | "flavor-text": "She had no invitation- and needed no introduction.",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/maui-demigod.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 3,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 185,
6 | "color": "Steel",
7 | "strength": 8,
8 | "artist": "Isaiah Mesq",
9 | "willpower": 8,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Deity"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Demigod",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/maui/demigod/maui-demigod-small.png",
23 | "no-art": "https://lorcana-api.com/images/maui/demigod/maui-demigod-no-art.png",
24 | "large": "https://lorcana-api.com/images/maui/demigod/maui-demigod-large.png",
25 | "art-crop": "https://lorcana-api.com/images/maui/demigod/maui-demigod-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/maui/demigod/maui-demigod-medium.png",
27 | "foil": "https://lorcana-api.com/images/maui/demigod/maui-demigod-foil.png"
28 | },
29 | "name": "Maui",
30 | "ink-cost": 8,
31 | "flavor-text": "When the gods gift you a boat, you take it. The boat's owner is optional.",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/maui-hero_to_all.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": [
4 | "Rush",
5 | "Reckless"
6 | ],
7 | "set": "The First Chapter",
8 | "card-number": 114,
9 | "color": "Ruby",
10 | "strength": 6,
11 | "artist": "Pixel / Marco Giogianni",
12 | "willpower": 5,
13 | "type": "Character",
14 | "subtypes": [
15 | "Storyborn",
16 | "Hero",
17 | "Deity"
18 | ],
19 | "set-code": "TFC",
20 | "abilities": {},
21 | "inkable": true,
22 | "body-text": "Rush (This character can challenge the turn they're played.) \nReckless (This character can't quest and must challenge each turn if able.) ",
23 | "subtitle": "Hero to All",
24 | "image-urls": {
25 | "small": "https://lorcana-api.com/images/maui/hero_to_all/maui-hero_to_all-small.png",
26 | "no-art": "https://lorcana-api.com/images/maui/hero_to_all/maui-hero_to_all-no-art.png",
27 | "large": "https://lorcana-api.com/images/maui/hero_to_all/maui-hero_to_all-large.png",
28 | "art-crop": "https://lorcana-api.com/images/maui/hero_to_all/maui-hero_to_all-art-crop.png",
29 | "medium": "https://lorcana-api.com/images/maui/hero_to_all/maui-hero_to_all-medium.png",
30 | "foil": "https://lorcana-api.com/images/maui/hero_to_all/maui-hero_to_all-foil.png"
31 | },
32 | "name": "Maui",
33 | "ink-cost": 5,
34 | "flavor-text": "\"What I believe you were trying to say is 'Thank you.'\"",
35 | "rarity": "Common"
36 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/mickey_mouse-steamboat_pilot.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 89,
6 | "color": "Emerald",
7 | "strength": 3,
8 | "artist": "Juan Diego Leon",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Captain"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Steamboat Pilot",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/mickey_mouse/steamboat_pilot/mickey_mouse-steamboat_pilot-small.png",
23 | "no-art": "https://lorcana-api.com/images/mickey_mouse/steamboat_pilot/mickey_mouse-steamboat_pilot-no-art.png",
24 | "large": "https://lorcana-api.com/images/mickey_mouse/steamboat_pilot/mickey_mouse-steamboat_pilot-large.png",
25 | "art-crop": "https://lorcana-api.com/images/mickey_mouse/steamboat_pilot/mickey_mouse-steamboat_pilot-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/mickey_mouse/steamboat_pilot/mickey_mouse-steamboat_pilot-medium.png",
27 | "foil": "https://lorcana-api.com/images/mickey_mouse/steamboat_pilot/mickey_mouse-steamboat_pilot-foil.png"
28 | },
29 | "name": "Mickey Mouse",
30 | "ink-cost": 3,
31 | "flavor-text": "On rivers throughout the Inklands, the little steamboat's whistle answers the cheery tunes of its pilot",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/mickey_mouse-true_friend.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 12,
6 | "color": "Amber",
7 | "strength": 3,
8 | "artist": "Dave Beauchene",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "True Friend",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/mickey_mouse/true_friend/mickey_mouse-true_friend-small.png",
22 | "no-art": "https://lorcana-api.com/images/mickey_mouse/true_friend/mickey_mouse-true_friend-no-art.png",
23 | "large": "https://lorcana-api.com/images/mickey_mouse/true_friend/mickey_mouse-true_friend-large.png",
24 | "art-crop": "https://lorcana-api.com/images/mickey_mouse/true_friend/mickey_mouse-true_friend-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/mickey_mouse/true_friend/mickey_mouse-true_friend-medium.png",
26 | "foil": "https://lorcana-api.com/images/mickey_mouse/true_friend/mickey_mouse-true_friend-foil.png"
27 | },
28 | "name": "Mickey Mouse",
29 | "ink-cost": 3,
30 | "flavor-text": "As long as he's around, new comers to the great illuminary will always get a warm welcome",
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/minnie_mouse-always_classy.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 116,
6 | "color": "Ruby",
7 | "strength": 1,
8 | "artist": "Kenneth Anderson",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Always Classy",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/minnie_mouse/always_classy/minnie_mouse-always_classy-small.png",
22 | "no-art": "https://lorcana-api.com/images/minnie_mouse/always_classy/minnie_mouse-always_classy-no-art.png",
23 | "large": "https://lorcana-api.com/images/minnie_mouse/always_classy/minnie_mouse-always_classy-large.png",
24 | "art-crop": "https://lorcana-api.com/images/minnie_mouse/always_classy/minnie_mouse-always_classy-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/minnie_mouse/always_classy/minnie_mouse-always_classy-medium.png",
26 | "foil": "https://lorcana-api.com/images/minnie_mouse/always_classy/minnie_mouse-always_classy-foil.png"
27 | },
28 | "name": "Minnie Mouse",
29 | "ink-cost": 1,
30 | "flavor-text": "Her fashion sense is always spot on.",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/minnie_mouse-beloved_princess.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 13,
6 | "color": "Amber",
7 | "strength": 2,
8 | "artist": "Kendall Hale",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Princess"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Beloved Princess",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/minnie_mouse/beloved_princess/minnie_mouse-beloved_princess-small.png",
22 | "no-art": "https://lorcana-api.com/images/minnie_mouse/beloved_princess/minnie_mouse-beloved_princess-no-art.png",
23 | "large": "https://lorcana-api.com/images/minnie_mouse/beloved_princess/minnie_mouse-beloved_princess-large.png",
24 | "art-crop": "https://lorcana-api.com/images/minnie_mouse/beloved_princess/minnie_mouse-beloved_princess-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/minnie_mouse/beloved_princess/minnie_mouse-beloved_princess-medium.png",
26 | "foil": "https://lorcana-api.com/images/minnie_mouse/beloved_princess/minnie_mouse-beloved_princess-foil.png"
27 | },
28 | "name": "Minnie Mouse",
29 | "flavor-text": "Wherever the princess goes, her musketeers are... well, they're around somewhere, probably.",
30 | "ink-cost": 2,
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/mother_knows_best.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 95,
4 | "color": "Emerald",
5 | "artist": "R. La Barbera / L. Giammichele",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Return chosen character to their player's hand.",
11 | "effect": "Return chosen character to their player's hand.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/mother_knows_best/mother_knows_best-small.png",
14 | "no-art": "https://lorcana-api.com/images/mother_knows_best/mother_knows_best-no-art.png",
15 | "large": "https://lorcana-api.com/images/mother_knows_best/mother_knows_best-large.png",
16 | "art-crop": "https://lorcana-api.com/images/mother_knows_best/mother_knows_best-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/mother_knows_best/mother_knows_best-medium.png",
18 | "foil": "https://lorcana-api.com/images/mother_knows_best/mother_knows_best-foil.png"
19 | },
20 | "name": "Mother Knows Best",
21 | "ink-cost": 3,
22 | "flavor-text": "One way or another\\nSomething will go wrong, I swear",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/mr._smee-loyal_first_mate.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 15,
6 | "color": "Amber",
7 | "strength": 2,
8 | "artist": "Kamil Murzyn / Eri Welli",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Ally",
14 | "Pirate"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Loyal First Mate",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/mr._smee/loyal_first_mate/mr._smee-loyal_first_mate-small.png",
23 | "no-art": "https://lorcana-api.com/images/mr._smee/loyal_first_mate/mr._smee-loyal_first_mate-no-art.png",
24 | "large": "https://lorcana-api.com/images/mr._smee/loyal_first_mate/mr._smee-loyal_first_mate-large.png",
25 | "art-crop": "https://lorcana-api.com/images/mr._smee/loyal_first_mate/mr._smee-loyal_first_mate-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/mr._smee/loyal_first_mate/mr._smee-loyal_first_mate-medium.png",
27 | "foil": "https://lorcana-api.com/images/mr._smee/loyal_first_mate/mr._smee-loyal_first_mate-foil.png"
28 | },
29 | "name": "Mr. Smee",
30 | "ink-cost": 3,
31 | "flavor-text": "\"Mr. Smee is a kind, gentle soul who lives to bring comfort and aid to a twisted old villain. Now, what good is kindness like that?\"",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/mufasa-king_of_the_pride_lands.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 3,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 155,
6 | "color": "Sapphire",
7 | "strength": 4,
8 | "artist": "Luis Huerta",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Mentor",
14 | "King"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "King of the Pride Lands",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/mufasa/king_of_the_pride_lands/mufasa-king_of_the_pride_lands-small.png",
23 | "no-art": "https://lorcana-api.com/images/mufasa/king_of_the_pride_lands/mufasa-king_of_the_pride_lands-no-art.png",
24 | "large": "https://lorcana-api.com/images/mufasa/king_of_the_pride_lands/mufasa-king_of_the_pride_lands-large.png",
25 | "art-crop": "https://lorcana-api.com/images/mufasa/king_of_the_pride_lands/mufasa-king_of_the_pride_lands-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/mufasa/king_of_the_pride_lands/mufasa-king_of_the_pride_lands-medium.png",
27 | "foil": "https://lorcana-api.com/images/mufasa/king_of_the_pride_lands/mufasa-king_of_the_pride_lands-foil.png"
28 | },
29 | "name": "Mufasa",
30 | "ink-cost": 6,
31 | "flavor-text": "\"A king must care for all of the creatures in his kingdom, no matter their size.\"",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/musketeer_tabard.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 203,
4 | "color": "Steel",
5 | "artist": "Dav Augereau",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"All For One And One For All": "Whenever one of your characters with Bodyguard is banished, you may draw a card"},
9 | "inkable": false,
10 | "body-text": "ALL FOR ONE AND ONE FOR ALL: Whenever one of your characters with Bodyguard is banished, you may draw a card",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/musketeer_tabard/musketeer_tabard-small.png",
14 | "no-art": "https://lorcana-api.com/images/musketeer_tabard/musketeer_tabard-no-art.png",
15 | "large": "https://lorcana-api.com/images/musketeer_tabard/musketeer_tabard-large.png",
16 | "art-crop": "https://lorcana-api.com/images/musketeer_tabard/musketeer_tabard-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/musketeer_tabard/musketeer_tabard-medium.png",
18 | "foil": "https://lorcana-api.com/images/musketeer_tabard/musketeer_tabard-foil.png"
19 | },
20 | "name": "Musketeer Tabard",
21 | "ink-cost": 4,
22 | "flavor-text": "There's no such thing as a lone musketeer.",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/olaf-friendly_snowman.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 52,
6 | "color": "Amethyst",
7 | "strength": 1,
8 | "artist": "Giulia Riva",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Friendly Snowman",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/olaf/friendly_snowman/olaf-friendly_snowman-small.png",
22 | "no-art": "https://lorcana-api.com/images/olaf/friendly_snowman/olaf-friendly_snowman-no-art.png",
23 | "large": "https://lorcana-api.com/images/olaf/friendly_snowman/olaf-friendly_snowman-large.png",
24 | "art-crop": "https://lorcana-api.com/images/olaf/friendly_snowman/olaf-friendly_snowman-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/olaf/friendly_snowman/olaf-friendly_snowman-medium.png",
26 | "foil": "https://lorcana-api.com/images/olaf/friendly_snowman/olaf-friendly_snowman-foil.png"
27 | },
28 | "name": "Olaf",
29 | "flavor-text": "\"I'm Olaf and I like warm hugs!\"",
30 | "ink-cost": 1,
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/one_jump_ahead.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 164,
4 | "color": "Sapphire",
5 | "artist": "Bill Robinson",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "inkable": false,
9 | "body-text": "Put the top card of your deck into your inkwell facedown and exerted",
10 | "effect": "Put the top card of your deck into your inkwell facedown and exerted",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/one_jump_ahead/one_jump_ahead-small.png",
13 | "no-art": "https://lorcana-api.com/images/one_jump_ahead/one_jump_ahead-no-art.png",
14 | "large": "https://lorcana-api.com/images/one_jump_ahead/one_jump_ahead-large.png",
15 | "art-crop": "https://lorcana-api.com/images/one_jump_ahead/one_jump_ahead-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/one_jump_ahead/one_jump_ahead-medium.png",
17 | "foil": "https://lorcana-api.com/images/one_jump_ahead/one_jump_ahead-foil.png"
18 | },
19 | "name": "One Jump Ahead",
20 | "ink-cost": 2,
21 | "flavor-text": "Gotta eat to live, gotta steal to eat- Tell you all about it when I got the time",
22 | "rarity": "Uncommon"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/part_of_your_world.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 30,
4 | "color": "Amber",
5 | "artist": "Samanta Erdini",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "inkable": false,
9 | "body-text": "Return a character card from your discard to your hand",
10 | "effect": "Return a character card from your discard to your hand",
11 | "image-urls": {
12 | "small": "https://lorcana-api.com/images/part_of_your_world/part_of_your_world-small.png",
13 | "no-art": "https://lorcana-api.com/images/part_of_your_world/part_of_your_world-no-art.png",
14 | "large": "https://lorcana-api.com/images/part_of_your_world/part_of_your_world-large.png",
15 | "art-crop": "https://lorcana-api.com/images/part_of_your_world/part_of_your_world-art-crop.png",
16 | "medium": "https://lorcana-api.com/images/part_of_your_world/part_of_your_world-medium.png",
17 | "foil": "https://lorcana-api.com/images/part_of_your_world/part_of_your_world-foil.png"
18 | },
19 | "name": "Part Of Your World",
20 | "ink-cost": 3,
21 | "flavor-text": "What would I give if I could live out of these waters?",
22 | "rarity": "Rare"
23 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/peter_pan-fearless_fighter.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": ["Rush"],
4 | "set": "The First Chapter",
5 | "card-number": 119,
6 | "color": "Ruby",
7 | "strength": 3,
8 | "artist": "Anh Dang",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Rush (This character can challenge the turn they're played.) ",
19 | "subtitle": "Fearless Fighter",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/peter_pan/fearless_fighter/peter_pan-fearless_fighter-small.png",
22 | "no-art": "https://lorcana-api.com/images/peter_pan/fearless_fighter/peter_pan-fearless_fighter-no-art.png",
23 | "large": "https://lorcana-api.com/images/peter_pan/fearless_fighter/peter_pan-fearless_fighter-large.png",
24 | "art-crop": "https://lorcana-api.com/images/peter_pan/fearless_fighter/peter_pan-fearless_fighter-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/peter_pan/fearless_fighter/peter_pan-fearless_fighter-medium.png",
26 | "foil": "https://lorcana-api.com/images/peter_pan/fearless_fighter/peter_pan-fearless_fighter-foil.png"
27 | },
28 | "name": "Peter Pan",
29 | "ink-cost": 3,
30 | "flavor-text": "\"Nobody calls Pan a coward and lives! I'll fight you man-to-=man, with one hand behind my back",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/peter_pan-never_landing.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": ["Evasive"],
4 | "set": "The First Chapter",
5 | "card-number": 91,
6 | "color": "Emerald",
7 | "strength": 3,
8 | "artist": "Koni",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Evasive (Only characters with Evasive can challenge this character.) ",
19 | "subtitle": "Never Landing",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/peter_pan/never_landing/peter_pan-never_landing-small.png",
22 | "no-art": "https://lorcana-api.com/images/peter_pan/never_landing/peter_pan-never_landing-no-art.png",
23 | "large": "https://lorcana-api.com/images/peter_pan/never_landing/peter_pan-never_landing-large.png",
24 | "art-crop": "https://lorcana-api.com/images/peter_pan/never_landing/peter_pan-never_landing-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/peter_pan/never_landing/peter_pan-never_landing-medium.png",
26 | "foil": "https://lorcana-api.com/images/peter_pan/never_landing/peter_pan-never_landing-foil.png"
27 | },
28 | "name": "Peter Pan",
29 | "ink-cost": 3,
30 | "flavor-text": "What's the matter, Hook? Can't you fly?",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/plasma_blaster.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 204,
4 | "color": "Steel",
5 | "artist": "Oleg Yurkov",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Quick Shot": "{t}, 2{ink} - Deal 1 damage to chosen character"},
9 | "inkable": false,
10 | "body-text": "QUICK SHOT: {t}, 2{ink} - Deal 1 damage to chosen character",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/plasma_blaster/plasma_blaster-small.png",
14 | "no-art": "https://lorcana-api.com/images/plasma_blaster/plasma_blaster-no-art.png",
15 | "large": "https://lorcana-api.com/images/plasma_blaster/plasma_blaster-large.png",
16 | "art-crop": "https://lorcana-api.com/images/plasma_blaster/plasma_blaster-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/plasma_blaster/plasma_blaster-medium.png",
18 | "foil": "https://lorcana-api.com/images/plasma_blaster/plasma_blaster-foil.png"
19 | },
20 | "name": "Plasma Blaster",
21 | "ink-cost": 3,
22 | "flavor-text": "\"You don't have to say 'pew pew' when you use it, but it doesn't hurt.\" -Lilo, galactiv hero",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/poisoned_apple.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 134,
4 | "color": "Ruby",
5 | "artist": "Andrew Trabbold",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Take A Bite...": "1{ink}, Banish this item - Excert chosen character. If a princess character is chosen, banish her instead."},
9 | "inkable": false,
10 | "body-text": "TAKE A BITE...: 1{ink}, Banish this item - Excert chosen character. If a princess character is chosen, banish her instead.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/poisoned_apple/poisoned_apple-small.png",
14 | "no-art": "https://lorcana-api.com/images/poisoned_apple/poisoned_apple-no-art.png",
15 | "large": "https://lorcana-api.com/images/poisoned_apple/poisoned_apple-large.png",
16 | "art-crop": "https://lorcana-api.com/images/poisoned_apple/poisoned_apple-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/poisoned_apple/poisoned_apple-medium.png",
18 | "foil": "https://lorcana-api.com/images/poisoned_apple/poisoned_apple-foil.png"
19 | },
20 | "name": "Poisoned Apple",
21 | "ink-cost": 3,
22 | "flavor-text": "\"One taste of the poisoned apple, and the victim's eyes will close forever....\" -The Queen",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/pongo-ol'_rascal.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": ["Evasive"],
4 | "set": "The First Chapter",
5 | "card-number": 120,
6 | "color": "Ruby",
7 | "strength": 2,
8 | "artist": "Brian Weisz",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Evasive (Only characters with Evasive can challenge this character.) ",
19 | "subtitle": "Ol' Rascal",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/pongo/ol'_rascal/pongo-ol'_rascal-small.png",
22 | "no-art": "https://lorcana-api.com/images/pongo/ol'_rascal/pongo-ol'_rascal-no-art.png",
23 | "large": "https://lorcana-api.com/images/pongo/ol'_rascal/pongo-ol'_rascal-large.png",
24 | "art-crop": "https://lorcana-api.com/images/pongo/ol'_rascal/pongo-ol'_rascal-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/pongo/ol'_rascal/pongo-ol'_rascal-medium.png",
26 | "foil": "https://lorcana-api.com/images/pongo/ol'_rascal/pongo-ol'_rascal-foil.png"
27 | },
28 | "name": "Pongo",
29 | "ink-cost": 4,
30 | "flavor-text": "At first I had no particular plan, just anything to attract attention. You know, stir things up a bit.",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/prince_eric-dashing_and_brave.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": ["Challenger 2"],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 187,
6 | "color": "Steel",
7 | "strength": 1,
8 | "artist": "Cristian Romero",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "Challenger 2 When challenging, this character get +2{strength}.) ",
20 | "subtitle": "Dashing and Brave",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/prince_eric/dashing_and_brave/prince_eric-dashing_and_brave-small.png",
23 | "no-art": "https://lorcana-api.com/images/prince_eric/dashing_and_brave/prince_eric-dashing_and_brave-no-art.png",
24 | "large": "https://lorcana-api.com/images/prince_eric/dashing_and_brave/prince_eric-dashing_and_brave-large.png",
25 | "art-crop": "https://lorcana-api.com/images/prince_eric/dashing_and_brave/prince_eric-dashing_and_brave-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/prince_eric/dashing_and_brave/prince_eric-dashing_and_brave-medium.png",
27 | "foil": "https://lorcana-api.com/images/prince_eric/dashing_and_brave/prince_eric-dashing_and_brave-foil.png"
28 | },
29 | "name": "Prince Eric",
30 | "flavor-text": "\\\"I lost her once! I'm not gonna lose her again!\\\"",
31 | "ink-cost": 2,
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/pumbaa-friendly_warthog.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 17,
6 | "color": "Amber",
7 | "strength": 3,
8 | "artist": "Jenna Gray",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Friendly Warthog",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/pumbaa/friendly_warthog/pumbaa-friendly_warthog-small.png",
22 | "no-art": "https://lorcana-api.com/images/pumbaa/friendly_warthog/pumbaa-friendly_warthog-no-art.png",
23 | "large": "https://lorcana-api.com/images/pumbaa/friendly_warthog/pumbaa-friendly_warthog-large.png",
24 | "art-crop": "https://lorcana-api.com/images/pumbaa/friendly_warthog/pumbaa-friendly_warthog-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/pumbaa/friendly_warthog/pumbaa-friendly_warthog-medium.png",
26 | "foil": "https://lorcana-api.com/images/pumbaa/friendly_warthog/pumbaa-friendly_warthog-foil.png"
27 | },
28 | "name": "Pumbaa",
29 | "ink-cost": 4,
30 | "flavor-text": "\"You gotta put your behind in your past.\"",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/rafiki-mysterious_sage.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": ["Rush"],
4 | "set": "The First Chapter",
5 | "card-number": 54,
6 | "color": "Amethyst",
7 | "strength": 3,
8 | "artist": "Giulia Riva",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Mentor",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": false,
19 | "body-text": "Rush (This character can challenge the turn they're played.) ",
20 | "subtitle": "Mysterious Sage",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/rafiki/mysterious_sage/rafiki-mysterious_sage-small.png",
23 | "no-art": "https://lorcana-api.com/images/rafiki/mysterious_sage/rafiki-mysterious_sage-no-art.png",
24 | "large": "https://lorcana-api.com/images/rafiki/mysterious_sage/rafiki-mysterious_sage-large.png",
25 | "art-crop": "https://lorcana-api.com/images/rafiki/mysterious_sage/rafiki-mysterious_sage-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/rafiki/mysterious_sage/rafiki-mysterious_sage-medium.png",
27 | "foil": "https://lorcana-api.com/images/rafiki/mysterious_sage/rafiki-mysterious_sage-foil.png"
28 | },
29 | "name": "Rafiki",
30 | "ink-cost": 3,
31 | "flavor-text": "\"The past can hurt. But the way I see it, you can either run from it or learn from it.\"",
32 | "rarity": "Uncommon"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/ransack.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 199,
4 | "color": "Steel",
5 | "artist": "Amber Kommavongsa",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Draw 2 cards, then choose and discord 2 cards.",
11 | "effect": "Draw 2 cards, then choose and discord 2 cards.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/ransack/ransack-small.png",
14 | "no-art": "https://lorcana-api.com/images/ransack/ransack-no-art.png",
15 | "large": "https://lorcana-api.com/images/ransack/ransack-large.png",
16 | "art-crop": "https://lorcana-api.com/images/ransack/ransack-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/ransack/ransack-medium.png",
18 | "foil": "https://lorcana-api.com/images/ransack/ransack-foil.png"
19 | },
20 | "name": "Ransack",
21 | "ink-cost": 2,
22 | "flavor-text": "Who has time to read labels?",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/reflection.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 65,
4 | "color": "Amethyst",
5 | "artist": "Kevin Hong",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Look at the top 3 cards of your deck. Put them back on the top of your deck in any order.",
11 | "effect": "Look at the top 3 cards of your deck. Put them back on the top of your deck in any order.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/reflection/reflection-small.png",
14 | "no-art": "https://lorcana-api.com/images/reflection/reflection-no-art.png",
15 | "large": "https://lorcana-api.com/images/reflection/reflection-large.png",
16 | "art-crop": "https://lorcana-api.com/images/reflection/reflection-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/reflection/reflection-medium.png",
18 | "foil": "https://lorcana-api.com/images/reflection/reflection-foil.png"
19 | },
20 | "name": "Reflection",
21 | "ink-cost": 1,
22 | "flavor-text": "When will my reflection show\\nWho I am inside?",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/scar-fiery_usurper.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [
4 | "",
5 | ""
6 | ],
7 | "set": "The First Chapter",
8 | "card-number": 122,
9 | "color": "Ruby",
10 | "strength": 5,
11 | "artist": "Amber Kommavongsa",
12 | "willpower": 3,
13 | "type": "Character",
14 | "subtypes": [
15 | "Dreamborn",
16 | "Villain"
17 | ],
18 | "set-code": "TFC",
19 | "abilities": {},
20 | "inkable": true,
21 | "body-text": " null \n null ",
22 | "subtitle": "Fiery Usurper",
23 | "image-urls": {
24 | "small": "https://lorcana-api.com/images/scar/fiery_usurper/scar-fiery_usurper-small.png",
25 | "no-art": "https://lorcana-api.com/images/scar/fiery_usurper/scar-fiery_usurper-no-art.png",
26 | "large": "https://lorcana-api.com/images/scar/fiery_usurper/scar-fiery_usurper-large.png",
27 | "art-crop": "https://lorcana-api.com/images/scar/fiery_usurper/scar-fiery_usurper-art-crop.png",
28 | "medium": "https://lorcana-api.com/images/scar/fiery_usurper/scar-fiery_usurper-medium.png",
29 | "foil": "https://lorcana-api.com/images/scar/fiery_usurper/scar-fiery_usurper-foil.png"
30 | },
31 | "name": "Scar",
32 | "ink-cost": 4,
33 | "flavor-text": "Consumed by the flames of ambition.",
34 | "rarity": "Common"
35 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/scar-mastermind.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 0,
5 | "card-number": 158,
6 | "color": "Sapphire",
7 | "strength": 5,
8 | "artist": "Bill Robinson",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Insidious Plot": "When you play this character, chosen opposing character gets -5? this turn."},
17 | "inkable": true,
18 | "body-text": "INSIDIOUS PLOT: When you play this character, chosen opposing character gets -5? this turn.",
19 | "subtitle": "Mastermind",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/scar/mastermind/scar-mastermind-small.png",
22 | "no-art": "https://lorcana-api.com/images/scar/mastermind/scar-mastermind-no-art.png",
23 | "large": "https://lorcana-api.com/images/scar/mastermind/scar-mastermind-large.png",
24 | "art-crop": "https://lorcana-api.com/images/scar/mastermind/scar-mastermind-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/scar/mastermind/scar-mastermind-medium.png",
26 | "foil": "https://lorcana-api.com/images/scar/mastermind/scar-mastermind-foil.png"
27 | },
28 | "name": "Scar",
29 | "flavor-text": "\\\"The best plans involve a little danger. Just not for me.\\\"",
30 | "ink-cost": 6,
31 | "rarity": "Rare"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/scepter_of_arendelle.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 170,
4 | "color": "Sapphire",
5 | "artist": "Grace Tran",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Command": "{tap} - Chosen character gains Support this turn. (Whenever they quest, you may add their {strength} to another chosen character's {strength} this turn.)"},
9 | "inkable": true,
10 | "body-text": "COMMAND: {tap} - Chosen character gains Support this turn. (Whenever they quest, you may add their {strength} to another chosen character's {strength} this turn.)",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/scepter_of_arendelle/scepter_of_arendelle-small.png",
14 | "no-art": "https://lorcana-api.com/images/scepter_of_arendelle/scepter_of_arendelle-no-art.png",
15 | "large": "https://lorcana-api.com/images/scepter_of_arendelle/scepter_of_arendelle-large.png",
16 | "art-crop": "https://lorcana-api.com/images/scepter_of_arendelle/scepter_of_arendelle-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/scepter_of_arendelle/scepter_of_arendelle-medium.png",
18 | "foil": "https://lorcana-api.com/images/scepter_of_arendelle/scepter_of_arendelle-foil.png"
19 | },
20 | "name": "Scepter Of Arendelle",
21 | "ink-cost": 1,
22 | "flavor-text": "",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/sebastian-court_composer.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": ["Singer 4"],
4 | "set": "The First Chapter",
5 | "card-number": 19,
6 | "color": "Amber",
7 | "strength": 2,
8 | "artist": "Isaiah Mesq",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Singer 4 (This character counts as cost 4 to sing songs.) ",
19 | "subtitle": "Court Composer",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/sebastian/court_composer/sebastian-court_composer-small.png",
22 | "no-art": "https://lorcana-api.com/images/sebastian/court_composer/sebastian-court_composer-no-art.png",
23 | "large": "https://lorcana-api.com/images/sebastian/court_composer/sebastian-court_composer-large.png",
24 | "art-crop": "https://lorcana-api.com/images/sebastian/court_composer/sebastian-court_composer-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/sebastian/court_composer/sebastian-court_composer-medium.png",
26 | "foil": "https://lorcana-api.com/images/sebastian/court_composer/sebastian-court_composer-foil.png"
27 | },
28 | "name": "Sebastian",
29 | "ink-cost": 2,
30 | "flavor-text": "I should be writing symphonies, not tagging along after some headstrong teenager.",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/sergeant_tibbs-courageous_cat.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 124,
6 | "color": "Ruby",
7 | "strength": 2,
8 | "artist": "Cary Godhey",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Courageous Cat",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/sergeant_tibbs/courageous_cat/sergeant_tibbs-courageous_cat-small.png",
22 | "no-art": "https://lorcana-api.com/images/sergeant_tibbs/courageous_cat/sergeant_tibbs-courageous_cat-no-art.png",
23 | "large": "https://lorcana-api.com/images/sergeant_tibbs/courageous_cat/sergeant_tibbs-courageous_cat-large.png",
24 | "art-crop": "https://lorcana-api.com/images/sergeant_tibbs/courageous_cat/sergeant_tibbs-courageous_cat-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/sergeant_tibbs/courageous_cat/sergeant_tibbs-courageous_cat-medium.png",
26 | "foil": "https://lorcana-api.com/images/sergeant_tibbs/courageous_cat/sergeant_tibbs-courageous_cat-foil.png"
27 | },
28 | "name": "Sergeant Tibbs",
29 | "ink-cost": 1,
30 | "flavor-text": "Yes, sir. Righto, sir. Right away, sir!",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/shield_of_virtue.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 135,
4 | "color": "Ruby",
5 | "artist": "Eri Welli",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Fireproof": "{t}, 3{ink} - Read chosen character. They can't quest for the rest of this turn."},
9 | "inkable": true,
10 | "body-text": "FIREPROOF: {t}, 3{ink} - Read chosen character. They can't quest for the rest of this turn.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/shield_of_virtue/shield_of_virtue-small.png",
14 | "no-art": "https://lorcana-api.com/images/shield_of_virtue/shield_of_virtue-no-art.png",
15 | "large": "https://lorcana-api.com/images/shield_of_virtue/shield_of_virtue-large.png",
16 | "art-crop": "https://lorcana-api.com/images/shield_of_virtue/shield_of_virtue-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/shield_of_virtue/shield_of_virtue-medium.png",
18 | "foil": "https://lorcana-api.com/images/shield_of_virtue/shield_of_virtue-foil.png"
19 | },
20 | "name": "Shield Of Virtue",
21 | "ink-cost": 1,
22 | "flavor-text": "\"Arm thyself with this enchanted Shield of Virtue and this mighty Sword of Truth, for these weapons of righteousness will triumph over evil.\" -Flora",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/simba-future_king.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 188,
6 | "color": "Steel",
7 | "strength": 1,
8 | "artist": "Nicholas Kole",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Guess What?": "When you play this character, you may draw a card, then choose and discard a card."},
18 | "inkable": true,
19 | "body-text": "GUESS WHAT?: When you play this character, you may draw a card, then choose and discard a card.",
20 | "subtitle": "Future King",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/simba/future_king/simba-future_king-small.png",
23 | "no-art": "https://lorcana-api.com/images/simba/future_king/simba-future_king-no-art.png",
24 | "large": "https://lorcana-api.com/images/simba/future_king/simba-future_king-large.png",
25 | "art-crop": "https://lorcana-api.com/images/simba/future_king/simba-future_king-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/simba/future_king/simba-future_king-medium.png",
27 | "foil": "https://lorcana-api.com/images/simba/future_king/simba-future_king-foil.png"
28 | },
29 | "name": "Simba",
30 | "ink-cost": 1,
31 | "flavor-text": "I'm gonna be the best king the Pride Lands have ever seen!",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/simba-protective_cub.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": ["Bodyguard"],
4 | "set": "The First Chapter",
5 | "card-number": 20,
6 | "color": "Amber",
7 | "strength": 2,
8 | "artist": "Filipe Laurentino",
9 | "willpower": 3,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Prince"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "Bodyguard (This character may enter play exerted. An opposing character who challenges one of your characters must choose one with Bodyguard if able.) ",
20 | "subtitle": "Protective Cub",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/simba/protective_cub/simba-protective_cub-small.png",
23 | "no-art": "https://lorcana-api.com/images/simba/protective_cub/simba-protective_cub-no-art.png",
24 | "large": "https://lorcana-api.com/images/simba/protective_cub/simba-protective_cub-large.png",
25 | "art-crop": "https://lorcana-api.com/images/simba/protective_cub/simba-protective_cub-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/simba/protective_cub/simba-protective_cub-medium.png",
27 | "foil": "https://lorcana-api.com/images/simba/protective_cub/simba-protective_cub-foil.png"
28 | },
29 | "name": "Simba",
30 | "ink-cost": 2,
31 | "flavor-text": "Courage comes in all sizes",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/smash.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 200,
4 | "color": "Steel",
5 | "artist": "Simangaliso Sibaya",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Deal 3 damage to the chosen character",
11 | "effect": "Deal 3 damage to the chosen character",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/smash/smash-small.png",
14 | "no-art": "https://lorcana-api.com/images/smash/smash-no-art.png",
15 | "large": "https://lorcana-api.com/images/smash/smash-large.png",
16 | "art-crop": "https://lorcana-api.com/images/smash/smash-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/smash/smash-medium.png",
18 | "foil": "https://lorcana-api.com/images/smash/smash-foil.png"
19 | },
20 | "name": "Smash",
21 | "ink-cost": 3,
22 | "flavor-text": "\\\"Go away!\\\"",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/stampede.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 96,
4 | "color": "Emerald",
5 | "artist": "Matt Chapman",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Deal 2 damage to chosen damaged character.",
11 | "effect": "Deal 2 damage to chosen damaged character.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/stampede/stampede-small.png",
14 | "no-art": "https://lorcana-api.com/images/stampede/stampede-no-art.png",
15 | "large": "https://lorcana-api.com/images/stampede/stampede-large.png",
16 | "art-crop": "https://lorcana-api.com/images/stampede/stampede-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/stampede/stampede-medium.png",
18 | "foil": "https://lorcana-api.com/images/stampede/stampede-foil.png"
19 | },
20 | "name": "Stampede",
21 | "ink-cost": 1,
22 | "flavor-text": "A wildebeest stampede is like a raging river: best experienced from a distance",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/starkey-hook's_henchman.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 191,
6 | "color": "Steel",
7 | "strength": 5,
8 | "artist": "Leonardo Giammichele",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally",
14 | "Pirate"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Aye Aye Captain": "While you have a Captain character gets +1 {lore}."},
18 | "inkable": true,
19 | "body-text": "AYE AYE CAPTAIN: While you have a Captain character gets +1 {lore}.",
20 | "subtitle": "Hook's Henchman",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/starkey/hook's_henchman/starkey-hook's_henchman-small.png",
23 | "no-art": "https://lorcana-api.com/images/starkey/hook's_henchman/starkey-hook's_henchman-no-art.png",
24 | "large": "https://lorcana-api.com/images/starkey/hook's_henchman/starkey-hook's_henchman-large.png",
25 | "art-crop": "https://lorcana-api.com/images/starkey/hook's_henchman/starkey-hook's_henchman-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/starkey/hook's_henchman/starkey-hook's_henchman-medium.png",
27 | "foil": "https://lorcana-api.com/images/starkey/hook's_henchman/starkey-hook's_henchman-foil.png"
28 | },
29 | "name": "Starkey",
30 | "ink-cost": 5,
31 | "flavor-text": "A pirate must be tough, loyal, and strong. \"Smart\" doesn't even make the list.",
32 | "rarity": "Uncommon"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/steal_from_the_rich.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 97,
4 | "color": "Emerald",
5 | "artist": "Hedvig Haggman-Sund",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": false,
10 | "body-text": "Whenever one of your characters quests this turn, each opponent loses 1 lore.",
11 | "effect": "Whenever one of your characters quests this turn, each opponent loses 1 lore.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/steal_from_the_rich/steal_from_the_rich-small.png",
14 | "no-art": "https://lorcana-api.com/images/steal_from_the_rich/steal_from_the_rich-no-art.png",
15 | "large": "https://lorcana-api.com/images/steal_from_the_rich/steal_from_the_rich-large.png",
16 | "art-crop": "https://lorcana-api.com/images/steal_from_the_rich/steal_from_the_rich-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/steal_from_the_rich/steal_from_the_rich-medium.png",
18 | "foil": "https://lorcana-api.com/images/steal_from_the_rich/steal_from_the_rich-foil.png"
19 | },
20 | "name": "Steal From The Rich",
21 | "ink-cost": 5,
22 | "flavor-text": "\"Wonder how much ol' Prince John spent on all those fancy locks.\" -Little John",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/stitch-abomination.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 3,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 125,
6 | "color": "Ruby",
7 | "strength": 4,
8 | "artist": "Bill Robinson",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Alien"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "Abomination",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/stitch/abomination/stitch-abomination-small.png",
23 | "no-art": "https://lorcana-api.com/images/stitch/abomination/stitch-abomination-no-art.png",
24 | "large": "https://lorcana-api.com/images/stitch/abomination/stitch-abomination-large.png",
25 | "art-crop": "https://lorcana-api.com/images/stitch/abomination/stitch-abomination-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/stitch/abomination/stitch-abomination-medium.png",
27 | "foil": "https://lorcana-api.com/images/stitch/abomination/stitch-abomination-foil.png"
28 | },
29 | "name": "Stitch",
30 | "ink-cost": 6,
31 | "flavor-text": "\"His destructive programming is taking effect. He will be irresisibly drawn to large cities, where he will back up sewers, reverse street signs, and steal everyone's left shoe.\" -Jumba Jookiba",
32 | "rarity": "Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/stitch-new_dog.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 22,
6 | "color": "Amber",
7 | "strength": 2,
8 | "artist": "Alex Accorsi",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Hero",
14 | "Alien"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": true,
19 | "body-text": "",
20 | "subtitle": "New Dog",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/stitch/new_dog/stitch-new_dog-small.png",
23 | "no-art": "https://lorcana-api.com/images/stitch/new_dog/stitch-new_dog-no-art.png",
24 | "large": "https://lorcana-api.com/images/stitch/new_dog/stitch-new_dog-large.png",
25 | "art-crop": "https://lorcana-api.com/images/stitch/new_dog/stitch-new_dog-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/stitch/new_dog/stitch-new_dog-medium.png",
27 | "foil": "https://lorcana-api.com/images/stitch/new_dog/stitch-new_dog-foil.png"
28 | },
29 | "name": "Stitch",
30 | "ink-cost": 1,
31 | "flavor-text": "Lilo: \"David! I got a new dog!\" David: \"Auwe!... You sure it's a dog?\" Lilo: \"Uh-huh. He used to be a collie before he got ran over.\"",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/stolen_scimitar.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 102,
4 | "color": "Emerald",
5 | "artist": "Kendall Hale",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Slash": "{t} - Chosen character gets +1{strength} this turn. If a character named Alladdin is chosen, he get +2{strength} instead."},
9 | "inkable": true,
10 | "body-text": "SLASH: {t} - Chosen character gets +1{strength} this turn. If a character named Alladdin is chosen, he get +2{strength} instead.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/stolen_scimitar/stolen_scimitar-small.png",
14 | "no-art": "https://lorcana-api.com/images/stolen_scimitar/stolen_scimitar-no-art.png",
15 | "large": "https://lorcana-api.com/images/stolen_scimitar/stolen_scimitar-large.png",
16 | "art-crop": "https://lorcana-api.com/images/stolen_scimitar/stolen_scimitar-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/stolen_scimitar/stolen_scimitar-medium.png",
18 | "foil": "https://lorcana-api.com/images/stolen_scimitar/stolen_scimitar-foil.png"
19 | },
20 | "name": "Stolen Scimitar",
21 | "ink-cost": 2,
22 | "flavor-text": "Sometimes you've got to take what you can get.",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/sudden_chill.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 98,
4 | "color": "Emerald",
5 | "artist": "Giulia Riva",
6 | "type": "Action - Song",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Each opponent chooses and discards a card.",
11 | "effect": "Each opponent chooses and discards a card.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/sudden_chill/sudden_chill-small.png",
14 | "no-art": "https://lorcana-api.com/images/sudden_chill/sudden_chill-no-art.png",
15 | "large": "https://lorcana-api.com/images/sudden_chill/sudden_chill-large.png",
16 | "art-crop": "https://lorcana-api.com/images/sudden_chill/sudden_chill-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/sudden_chill/sudden_chill-medium.png",
18 | "foil": "https://lorcana-api.com/images/sudden_chill/sudden_chill-foil.png"
19 | },
20 | "name": "Sudden Chill",
21 | "ink-cost": 2,
22 | "flavor-text": "Cruella De Vil, Cruella De Vil, If she doesn't scare you, no evil thing will",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/sven-official_ice_deliverer.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 55,
6 | "color": "Amethyst",
7 | "strength": 5,
8 | "artist": "Jared Nickerl",
9 | "willpower": 7,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Official Ice Deliverer",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/sven/official_ice_deliverer/sven-official_ice_deliverer-small.png",
22 | "no-art": "https://lorcana-api.com/images/sven/official_ice_deliverer/sven-official_ice_deliverer-no-art.png",
23 | "large": "https://lorcana-api.com/images/sven/official_ice_deliverer/sven-official_ice_deliverer-large.png",
24 | "art-crop": "https://lorcana-api.com/images/sven/official_ice_deliverer/sven-official_ice_deliverer-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/sven/official_ice_deliverer/sven-official_ice_deliverer-medium.png",
26 | "foil": "https://lorcana-api.com/images/sven/official_ice_deliverer/sven-official_ice_deliverer-foil.png"
27 | },
28 | "name": "Sven",
29 | "ink-cost": 6,
30 | "flavor-text": "\"Reindeer comin' through!\" - Kristoff",
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/sword_of_truth.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 136,
4 | "color": "Ruby",
5 | "artist": "Andrew Trabbold",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Final Enchantment": "Banish this item - Banish chosen villain character."},
9 | "inkable": false,
10 | "body-text": "FINAL ENCHANTMENT: Banish this item - Banish chosen villain character.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/sword_of_truth/sword_of_truth-small.png",
14 | "no-art": "https://lorcana-api.com/images/sword_of_truth/sword_of_truth-no-art.png",
15 | "large": "https://lorcana-api.com/images/sword_of_truth/sword_of_truth-large.png",
16 | "art-crop": "https://lorcana-api.com/images/sword_of_truth/sword_of_truth-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/sword_of_truth/sword_of_truth-medium.png",
18 | "foil": "https://lorcana-api.com/images/sword_of_truth/sword_of_truth-foil.png"
19 | },
20 | "name": "Sword Of Truth",
21 | "ink-cost": 4,
22 | "flavor-text": "Almost as powerful as True Love's Kiss.",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/tamatoa-drab_little_crab.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 92,
6 | "color": "Emerald",
7 | "strength": 1,
8 | "artist": "Jeff Murchie",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": ["Dreamborn"],
12 | "set-code": "TFC",
13 | "abilities": {},
14 | "inkable": true,
15 | "body-text": "",
16 | "subtitle": "Drab Little Crab",
17 | "image-urls": {
18 | "small": "https://lorcana-api.com/images/tamatoa/drab_little_crab/tamatoa-drab_little_crab-small.png",
19 | "no-art": "https://lorcana-api.com/images/tamatoa/drab_little_crab/tamatoa-drab_little_crab-no-art.png",
20 | "large": "https://lorcana-api.com/images/tamatoa/drab_little_crab/tamatoa-drab_little_crab-large.png",
21 | "art-crop": "https://lorcana-api.com/images/tamatoa/drab_little_crab/tamatoa-drab_little_crab-art-crop.png",
22 | "medium": "https://lorcana-api.com/images/tamatoa/drab_little_crab/tamatoa-drab_little_crab-medium.png",
23 | "foil": "https://lorcana-api.com/images/tamatoa/drab_little_crab/tamatoa-drab_little_crab-foil.png"
24 | },
25 | "name": "Tamatoa",
26 | "ink-cost": 2,
27 | "flavor-text": "\"Someday, I'll grow up to be the most crabulous crustacean the world has ever seen!\"",
28 | "rarity": "Uncommon"
29 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/tangle.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 133,
4 | "color": "Ruby",
5 | "artist": "Eri Welli",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Each opponent loses 1 lore.",
11 | "effect": "Each opponent loses 1 lore.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/tangle/tangle-small.png",
14 | "no-art": "https://lorcana-api.com/images/tangle/tangle-no-art.png",
15 | "large": "https://lorcana-api.com/images/tangle/tangle-large.png",
16 | "art-crop": "https://lorcana-api.com/images/tangle/tangle-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/tangle/tangle-medium.png",
18 | "foil": "https://lorcana-api.com/images/tangle/tangle-foil.png"
19 | },
20 | "name": "Tangle",
21 | "ink-cost": 2,
22 | "flavor-text": "\"Stay right there! I mean, you don't have a choice, I guess. But still! Don't move!\" - Rapunzel",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/te_ka-heartless.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 192,
6 | "color": "Steel",
7 | "strength": 5,
8 | "artist": "Andrew Trabbold",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Deity"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Seek The Heart": "During your turn, whenever this character banishes another character in a challenge, you gain 2 lore"},
18 | "inkable": true,
19 | "body-text": "SEEK THE HEART: During your turn, whenever this character banishes another character in a challenge, you gain 2 lore",
20 | "subtitle": "Heartless",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/te_ka/heartless/te_ka-heartless-small.png",
23 | "no-art": "https://lorcana-api.com/images/te_ka/heartless/te_ka-heartless-no-art.png",
24 | "large": "https://lorcana-api.com/images/te_ka/heartless/te_ka-heartless-large.png",
25 | "art-crop": "https://lorcana-api.com/images/te_ka/heartless/te_ka-heartless-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/te_ka/heartless/te_ka-heartless-medium.png",
27 | "foil": "https://lorcana-api.com/images/te_ka/heartless/te_ka-heartless-foil.png"
28 | },
29 | "name": "Te Ka",
30 | "ink-cost": 6,
31 | "flavor-text": "Maui: \"Ever defeat a lava monster?\" Moana: \"No, have you?\"",
32 | "rarity": "Legendary"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/te_ka-the_burning_one.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 0,
3 | "traits": ["Reckless"],
4 | "set": "The First Chapter",
5 | "card-number": 126,
6 | "color": "Ruby",
7 | "strength": 8,
8 | "artist": "Kamil Murzyn",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain",
14 | "Deity"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {},
18 | "inkable": false,
19 | "body-text": "Reckless (This character can't quest and must challenge each turn if able.) ",
20 | "subtitle": "The Burning One",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/te_ka/the_burning_one/te_ka-the_burning_one-small.png",
23 | "no-art": "https://lorcana-api.com/images/te_ka/the_burning_one/te_ka-the_burning_one-no-art.png",
24 | "large": "https://lorcana-api.com/images/te_ka/the_burning_one/te_ka-the_burning_one-large.png",
25 | "art-crop": "https://lorcana-api.com/images/te_ka/the_burning_one/te_ka-the_burning_one-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/te_ka/the_burning_one/te_ka-the_burning_one-medium.png",
27 | "foil": "https://lorcana-api.com/images/te_ka/the_burning_one/te_ka-the_burning_one-foil.png"
28 | },
29 | "name": "Te Ka",
30 | "ink-cost": 6,
31 | "flavor-text": "She burns for that which was stolen from her.",
32 | "rarity": "Super Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/the_beast_is_mine!.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 99,
4 | "color": "Emerald",
5 | "artist": "unknown",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Chosen character gains Reckless during their next turn. (They can't quest and must challenge if able.)",
11 | "effect": "Chosen character gains Reckless during their next turn. (They can't quest and must challenge if able.)",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/the_beast_is_mine!/the_beast_is_mine!-small.png",
14 | "no-art": "https://lorcana-api.com/images/the_beast_is_mine!/the_beast_is_mine!-no-art.png",
15 | "large": "https://lorcana-api.com/images/the_beast_is_mine!/the_beast_is_mine!-large.png",
16 | "art-crop": "https://lorcana-api.com/images/the_beast_is_mine!/the_beast_is_mine!-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/the_beast_is_mine!/the_beast_is_mine!-medium.png",
18 | "foil": "https://lorcana-api.com/images/the_beast_is_mine!/the_beast_is_mine!-foil.png"
19 | },
20 | "name": "The Beast Is Mine!",
21 | "ink-cost": 3,
22 | "flavor-text": "\\\"It's only fitting that the finest hunter get the foulest beast!\\\" -Gaston",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/the_queen-wicked_and_vain.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 56,
6 | "color": "Amethyst",
7 | "strength": 4,
8 | "artist": "Matthew Robert Davies",
9 | "willpower": 5,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Villain",
14 | "Queen"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"I Summon Thee": "{t} - Draw a card."},
18 | "inkable": true,
19 | "body-text": "I SUMMON THEE: {t} - Draw a card.",
20 | "subtitle": "Wicked and Vain",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/the_queen/wicked_and_vain/the_queen-wicked_and_vain-small.png",
23 | "no-art": "https://lorcana-api.com/images/the_queen/wicked_and_vain/the_queen-wicked_and_vain-no-art.png",
24 | "large": "https://lorcana-api.com/images/the_queen/wicked_and_vain/the_queen-wicked_and_vain-large.png",
25 | "art-crop": "https://lorcana-api.com/images/the_queen/wicked_and_vain/the_queen-wicked_and_vain-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/the_queen/wicked_and_vain/the_queen-wicked_and_vain-medium.png",
27 | "foil": "https://lorcana-api.com/images/the_queen/wicked_and_vain/the_queen-wicked_and_vain-foil.png"
28 | },
29 | "name": "The Queen",
30 | "ink-cost": 5,
31 | "flavor-text": "Sublime beauty matched with peerless cunning. Is there any question who is fairest?",
32 | "rarity": "Super Rare"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/the_wardrobe-belle's_confidant.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 57,
6 | "color": "Amethyst",
7 | "strength": 3,
8 | "artist": "Giulia Riva",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "Belle's Confidant",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/the_wardrobe/belle's_confidant/the_wardrobe-belle's_confidant-small.png",
22 | "no-art": "https://lorcana-api.com/images/the_wardrobe/belle's_confidant/the_wardrobe-belle's_confidant-no-art.png",
23 | "large": "https://lorcana-api.com/images/the_wardrobe/belle's_confidant/the_wardrobe-belle's_confidant-large.png",
24 | "art-crop": "https://lorcana-api.com/images/the_wardrobe/belle's_confidant/the_wardrobe-belle's_confidant-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/the_wardrobe/belle's_confidant/the_wardrobe-belle's_confidant-medium.png",
26 | "foil": "https://lorcana-api.com/images/the_wardrobe/belle's_confidant/the_wardrobe-belle's_confidant-foil.png"
27 | },
28 | "name": "The Wardrobe",
29 | "ink-cost": 3,
30 | "flavor-text": "When you simply must have the hautest couture.",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/tigger-wonderful_thing.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": ["Evasive (Only characters with Evasive can challenge this character.)"],
3 | "set": "The First Chapter",
4 | "lore-value": 0,
5 | "card-number": 127,
6 | "color": "Ruby",
7 | "strength": 4,
8 | "artist": "Kenneth Anderson",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Tigger"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "Evasive (Only characters with Evasive can challenge this character.) (Only characters with Evasive can challenge this character.) ",
19 | "subtitle": "Wonderful Thing",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/tigger/wonderful_thing/tigger-wonderful_thing-small.png",
22 | "no-art": "https://lorcana-api.com/images/tigger/wonderful_thing/tigger-wonderful_thing-no-art.png",
23 | "large": "https://lorcana-api.com/images/tigger/wonderful_thing/tigger-wonderful_thing-large.png",
24 | "art-crop": "https://lorcana-api.com/images/tigger/wonderful_thing/tigger-wonderful_thing-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/tigger/wonderful_thing/tigger-wonderful_thing-medium.png",
26 | "foil": "https://lorcana-api.com/images/tigger/wonderful_thing/tigger-wonderful_thing-foil.png"
27 | },
28 | "name": "Tigger",
29 | "flavor-text": "\\\"I'm the bounciest bouncer that ever bounced!\\\"",
30 | "ink-cost": 6,
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/timon-grub_rustler.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 24,
6 | "color": "Amber",
7 | "strength": 1,
8 | "artist": "Juan Diego Leon",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "Ally"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {"Tastes Like Chicken": "When you play this character, you may remove up to 1 damage from chosen character."},
17 | "inkable": true,
18 | "body-text": "TASTES LIKE CHICKEN: When you play this character, you may remove up to 1 damage from chosen character.",
19 | "subtitle": "Grub Rustler",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/timon/grub_rustler/timon-grub_rustler-small.png",
22 | "no-art": "https://lorcana-api.com/images/timon/grub_rustler/timon-grub_rustler-no-art.png",
23 | "large": "https://lorcana-api.com/images/timon/grub_rustler/timon-grub_rustler-large.png",
24 | "art-crop": "https://lorcana-api.com/images/timon/grub_rustler/timon-grub_rustler-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/timon/grub_rustler/timon-grub_rustler-medium.png",
26 | "foil": "https://lorcana-api.com/images/timon/grub_rustler/timon-grub_rustler-foil.png"
27 | },
28 | "name": "Timon",
29 | "ink-cost": 1,
30 | "flavor-text": "\"There's all manner of tasty treats in the world-ya just gotta know where to look.",
31 | "rarity": "Common"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/tinker_bell-tiny_tactician.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 1,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 194,
6 | "color": "Steel",
7 | "strength": 2,
8 | "artist": "Grace Tran",
9 | "willpower": 4,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Ally",
14 | "Fairy"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"Battle Plans": "{t} - Draw a card, then choose and discard a card."},
18 | "inkable": true,
19 | "body-text": "BATTLE PLANS: {t} - Draw a card, then choose and discard a card.",
20 | "subtitle": "Tiny Tactician",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/tinker_bell/tiny_tactician/tinker_bell-tiny_tactician-small.png",
23 | "no-art": "https://lorcana-api.com/images/tinker_bell/tiny_tactician/tinker_bell-tiny_tactician-no-art.png",
24 | "large": "https://lorcana-api.com/images/tinker_bell/tiny_tactician/tinker_bell-tiny_tactician-large.png",
25 | "art-crop": "https://lorcana-api.com/images/tinker_bell/tiny_tactician/tinker_bell-tiny_tactician-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/tinker_bell/tiny_tactician/tinker_bell-tiny_tactician-medium.png",
27 | "foil": "https://lorcana-api.com/images/tinker_bell/tiny_tactician/tinker_bell-tiny_tactician-foil.png"
28 | },
29 | "name": "Tinker Bell",
30 | "ink-cost": 3,
31 | "flavor-text": "Sometimes all you need is a little tactical genius.",
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/triton-the_sea_king.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [],
4 | "set": "The First Chapter",
5 | "card-number": 160,
6 | "color": "Sapphire",
7 | "strength": 5,
8 | "artist": "Cristian Romero",
9 | "willpower": 6,
10 | "type": "Character",
11 | "subtypes": [
12 | "Storyborn",
13 | "King"
14 | ],
15 | "set-code": "TFC",
16 | "abilities": {},
17 | "inkable": true,
18 | "body-text": "",
19 | "subtitle": "The Sea King",
20 | "image-urls": {
21 | "small": "https://lorcana-api.com/images/triton/the_sea_king/triton-the_sea_king-small.png",
22 | "no-art": "https://lorcana-api.com/images/triton/the_sea_king/triton-the_sea_king-no-art.png",
23 | "large": "https://lorcana-api.com/images/triton/the_sea_king/triton-the_sea_king-large.png",
24 | "art-crop": "https://lorcana-api.com/images/triton/the_sea_king/triton-the_sea_king-art-crop.png",
25 | "medium": "https://lorcana-api.com/images/triton/the_sea_king/triton-the_sea_king-medium.png",
26 | "foil": "https://lorcana-api.com/images/triton/the_sea_king/triton-the_sea_king-foil.png"
27 | },
28 | "name": "Triton",
29 | "ink-cost": 7,
30 | "flavor-text": "Isn't 'Because I said so' enough of a reason?",
31 | "rarity": "Uncommon"
32 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/ursula's_cauldron.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 67,
4 | "color": "Amethyst",
5 | "artist": "Oleg Yurkov",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Peer Into The Depths": "{t} - Look at the top 2 cards of your deck. Put one on the top of your deck and the other on the bottom."},
9 | "inkable": false,
10 | "body-text": "PEER INTO THE DEPTHS: {t} - Look at the top 2 cards of your deck. Put one on the top of your deck and the other on the bottom.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/ursula's_cauldron/ursula's_cauldron-small.png",
14 | "no-art": "https://lorcana-api.com/images/ursula's_cauldron/ursula's_cauldron-no-art.png",
15 | "large": "https://lorcana-api.com/images/ursula's_cauldron/ursula's_cauldron-large.png",
16 | "art-crop": "https://lorcana-api.com/images/ursula's_cauldron/ursula's_cauldron-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/ursula's_cauldron/ursula's_cauldron-medium.png",
18 | "foil": "https://lorcana-api.com/images/ursula's_cauldron/ursula's_cauldron-foil.png"
19 | },
20 | "name": "Ursula's Cauldron",
21 | "ink-cost": 2,
22 | "flavor-text": "\"Perfect for mixing potions and stealing voices.\"",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/ursula's_shell_necklace.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 34,
4 | "color": "Amber",
5 | "artist": "Jenna Gray",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"Now, Sing!": "Whenever you play a song, you may pay 1 {ink} to draw a card."},
9 | "inkable": false,
10 | "body-text": "NOW, SING!: Whenever you play a song, you may pay 1 {ink} to draw a card.",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/ursula's_shell_necklace/ursula's_shell_necklace-small.png",
14 | "no-art": "https://lorcana-api.com/images/ursula's_shell_necklace/ursula's_shell_necklace-no-art.png",
15 | "large": "https://lorcana-api.com/images/ursula's_shell_necklace/ursula's_shell_necklace-large.png",
16 | "art-crop": "https://lorcana-api.com/images/ursula's_shell_necklace/ursula's_shell_necklace-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/ursula's_shell_necklace/ursula's_shell_necklace-medium.png",
18 | "foil": "https://lorcana-api.com/images/ursula's_shell_necklace/ursula's_shell_necklace-foil.png"
19 | },
20 | "name": "Ursula's Shell Necklace",
21 | "ink-cost": 3,
22 | "flavor-text": "\"Singing is a lovely pastime... if you've got the voice for it.\" \\n - Ursula",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/vicious_betrayal.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 100,
4 | "color": "Emerald",
5 | "artist": "Michaela Martin",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Chosen character gets +2 {strength} this turn. If a villain character is chosen, they get +3 {strength} instead.",
11 | "effect": "Chosen character gets +2 {strength} this turn. If a villain character is chosen, they get +3 {strength} instead.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/vicious_betrayal/vicious_betrayal-small.png",
14 | "no-art": "https://lorcana-api.com/images/vicious_betrayal/vicious_betrayal-no-art.png",
15 | "large": "https://lorcana-api.com/images/vicious_betrayal/vicious_betrayal-large.png",
16 | "art-crop": "https://lorcana-api.com/images/vicious_betrayal/vicious_betrayal-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/vicious_betrayal/vicious_betrayal-medium.png",
18 | "foil": "https://lorcana-api.com/images/vicious_betrayal/vicious_betrayal-foil.png"
19 | },
20 | "name": "Vicious Betrayal",
21 | "ink-cost": 1,
22 | "flavor-text": "\"A true king takes matters into his own claws.\"\\n - Scar",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/white_rabbit's_pocket_watch.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 68,
4 | "color": "Amethyst",
5 | "artist": "Kamil Murzyn",
6 | "type": "Item",
7 | "set-code": "TFC",
8 | "abilities": {"I'm late!": "{t}, 1{ink}Chosen character gains Rush this turn. (They can challenge the turn they're played)"},
9 | "inkable": true,
10 | "body-text": "I'M LATE!: {t}, 1{ink}Chosen character gains Rush this turn. (They can challenge the turn they're played)",
11 | "effect": "",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/white_rabbit's_pocket_watch/white_rabbit's_pocket_watch-small.png",
14 | "no-art": "https://lorcana-api.com/images/white_rabbit's_pocket_watch/white_rabbit's_pocket_watch-no-art.png",
15 | "large": "https://lorcana-api.com/images/white_rabbit's_pocket_watch/white_rabbit's_pocket_watch-large.png",
16 | "art-crop": "https://lorcana-api.com/images/white_rabbit's_pocket_watch/white_rabbit's_pocket_watch-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/white_rabbit's_pocket_watch/white_rabbit's_pocket_watch-medium.png",
18 | "foil": "https://lorcana-api.com/images/white_rabbit's_pocket_watch/white_rabbit's_pocket_watch-foil.png"
19 | },
20 | "name": "White Rabbit's Pocket Watch",
21 | "ink-cost": 3,
22 | "flavor-text": "\\\"No wonder you're late. Why, this watch is exactly two days slow\\\"",
23 | "rarity": "Rare"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/work_together.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 165,
4 | "color": "Sapphire",
5 | "artist": "Bill Robinson",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Chosen Character gains Support this turn. (Whenever they quest, you may add their {strength} to another chosen character's {strength} this turn.)",
11 | "effect": "Chosen Character gains Support this turn. (Whenever they quest, you may add their {strength} to another chosen character's {strength} this turn.)",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/work_together/work_together-small.png",
14 | "no-art": "https://lorcana-api.com/images/work_together/work_together-no-art.png",
15 | "large": "https://lorcana-api.com/images/work_together/work_together-large.png",
16 | "art-crop": "https://lorcana-api.com/images/work_together/work_together-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/work_together/work_together-medium.png",
18 | "foil": "https://lorcana-api.com/images/work_together/work_together-foil.png"
19 | },
20 | "name": "Work Together",
21 | "ink-cost": 1,
22 | "flavor-text": "Pacho: \"Put your whole back into it!\" Kuzco: \"This is my whole back!\"",
23 | "rarity": "Common"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/you_have_forgotten_me.txt:
--------------------------------------------------------------------------------
1 | {
2 | "set": "The First Chapter",
3 | "card-number": 31,
4 | "color": "Amber",
5 | "artist": "Alice Pisoni",
6 | "type": "Action",
7 | "set-code": "TFC",
8 | "abilities": {},
9 | "inkable": true,
10 | "body-text": "Each opponent chooses and discards 2 cards.",
11 | "effect": "Each opponent chooses and discards 2 cards.",
12 | "image-urls": {
13 | "small": "https://lorcana-api.com/images/you_have_forgotten_me/you_have_forgotten_me-small.png",
14 | "no-art": "https://lorcana-api.com/images/you_have_forgotten_me/you_have_forgotten_me-no-art.png",
15 | "large": "https://lorcana-api.com/images/you_have_forgotten_me/you_have_forgotten_me-large.png",
16 | "art-crop": "https://lorcana-api.com/images/you_have_forgotten_me/you_have_forgotten_me-art-crop.png",
17 | "medium": "https://lorcana-api.com/images/you_have_forgotten_me/you_have_forgotten_me-medium.png",
18 | "foil": "https://lorcana-api.com/images/you_have_forgotten_me/you_have_forgotten_me-foil.png"
19 | },
20 | "name": "You Have Forgotten Me",
21 | "ink-cost": 4,
22 | "flavor-text": "\"You are more than what you have become.\" -Mufasa",
23 | "rarity": "Uncommon"
24 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/yzma-alchemist.txt:
--------------------------------------------------------------------------------
1 | {
2 | "traits": [],
3 | "set": "The First Chapter",
4 | "lore-value": 1,
5 | "card-number": 60,
6 | "color": "Amethyst",
7 | "strength": 2,
8 | "artist": "Hadjie Joos",
9 | "willpower": 2,
10 | "type": "Character",
11 | "subtypes": [
12 | "Dreamborn",
13 | "Villain",
14 | "Sorcerer"
15 | ],
16 | "set-code": "TFC",
17 | "abilities": {"You're Excused": "Whenever this character quests, look at the top card of your deck. Put it on either the top or the bottom of your deck"},
18 | "inkable": true,
19 | "body-text": "YOU'RE EXCUSED: Whenever this character quests, look at the top card of your deck. Put it on either the top or the bottom of your deck",
20 | "subtitle": "Alchemist",
21 | "image-urls": {
22 | "small": "https://lorcana-api.com/images/yzma/alchemist/yzma-alchemist-small.png",
23 | "no-art": "https://lorcana-api.com/images/yzma/alchemist/yzma-alchemist-no-art.png",
24 | "large": "https://lorcana-api.com/images/yzma/alchemist/yzma-alchemist-large.png",
25 | "art-crop": "https://lorcana-api.com/images/yzma/alchemist/yzma-alchemist-art-crop.png",
26 | "medium": "https://lorcana-api.com/images/yzma/alchemist/yzma-alchemist-medium.png",
27 | "foil": "https://lorcana-api.com/images/yzma/alchemist/yzma-alchemist-foil.png"
28 | },
29 | "name": "Yzma",
30 | "flavor-text": "\"When I want your opinion, I will give it to you!\"",
31 | "ink-cost": 2,
32 | "rarity": "Common"
33 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/cards/zeus-god_of_lightning.txt:
--------------------------------------------------------------------------------
1 | {
2 | "lore-value": 2,
3 | "traits": [
4 | "Rush",
5 | "Challenger 4"
6 | ],
7 | "set": "The First Chapter",
8 | "card-number": 61,
9 | "color": "Amethyst",
10 | "strength": 0,
11 | "artist": "Koni",
12 | "willpower": 4,
13 | "type": "Character",
14 | "subtypes": [
15 | "Storyborn",
16 | "Deity"
17 | ],
18 | "set-code": "TFC",
19 | "abilities": {},
20 | "inkable": false,
21 | "body-text": "Rush (This character can challenge the turn they're played.) \nChallenger 4 (While challenging, this character get +4{strength}.) ",
22 | "subtitle": "God of Lightning",
23 | "image-urls": {
24 | "small": "https://lorcana-api.com/images/zeus/god_of_lightning/zeus-god_of_lightning-small.png",
25 | "no-art": "https://lorcana-api.com/images/zeus/god_of_lightning/zeus-god_of_lightning-no-art.png",
26 | "large": "https://lorcana-api.com/images/zeus/god_of_lightning/zeus-god_of_lightning-large.png",
27 | "art-crop": "https://lorcana-api.com/images/zeus/god_of_lightning/zeus-god_of_lightning-art-crop.png",
28 | "medium": "https://lorcana-api.com/images/zeus/god_of_lightning/zeus-god_of_lightning-medium.png",
29 | "foil": "https://lorcana-api.com/images/zeus/god_of_lightning/zeus-god_of_lightning-foil.png"
30 | },
31 | "name": "Zeus",
32 | "ink-cost": 4,
33 | "flavor-text": "A little lightning solves a whole lot of problems.",
34 | "rarity": "Rare"
35 | }
--------------------------------------------------------------------------------
/src/data/legacy_data/lists/colors.txt:
--------------------------------------------------------------------------------
1 | [
2 | "Ruby",
3 | "Sapphire",
4 | "Emerald",
5 | "Amber",
6 | "Amethyst",
7 | "Steel"
8 | ]
--------------------------------------------------------------------------------
/src/data/legacy_data/lists/lists.txt:
--------------------------------------------------------------------------------
1 | [
2 | "cards",
3 | "sets",
4 | "colors",
5 | "lists"
6 | ]
--------------------------------------------------------------------------------
/src/data/legacy_data/lists/sets.txt:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "The First Chapter": {
4 | "set-code": "TFC",
5 | "card-count": 204
6 | }
7 | }
8 | ]
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/App.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi;
2 |
3 | import java.io.File;
4 | import java.sql.DriverManager;
5 |
6 | import com.sun.net.httpserver.HttpServer;
7 |
8 | public class App {
9 |
10 | static File dir = new File("src//data");
11 |
12 | public static void main(String[] args) {
13 | // try {
14 | // Class.forName("java.sql.Connection");
15 | // Class.forName("java.sql.Driver");
16 | // Class.forName("oracle.jdbc.driver.OracleDriver");
17 | // } catch (ClassNotFoundException e) {
18 | // // TODO Auto-generated catch block
19 | // e.printStackTrace();
20 | // }
21 | try {
22 | Class.forName("com.mysql.cj.jdbc.Driver");
23 | } catch (ClassNotFoundException e) {
24 | // TODO Auto-generated catch block
25 | e.printStackTrace();
26 | }
27 | if (args.length < 3) {
28 | System.err.println("You must provide SQL details for this service to run properly. Put in ' ' into JVM arguments.");
29 | System.exit(0);
30 | }
31 |
32 | System.out.println("Server successfully booted!");
33 | // System.err.println("Hey You! You need to edit the source code and change the ");
34 | APIServer server = new APIServer(args[0], args[1], args[2]);
35 |
36 | if (args.length > 3) {
37 | if (args[3].equals("admin")) {
38 | server.setAdministratorMode(true);
39 | }
40 | }
41 |
42 | server.startServer();
43 |
44 |
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/ErrorMessageResponse.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi;
2 |
3 | public class ErrorMessageResponse {
4 |
5 | String code;
6 | String error;
7 | int status;
8 | public ErrorMessageResponse(String code, String error, int status) {
9 | this.code = code;
10 | this.error = error;
11 | this.status = status;
12 | }
13 |
14 | public String getFullErrorAsJSON() {
15 | return "{\"code\":\"" + getCode() +
16 | "\",\"details\":\"" + error.replace("\"", "\\\"") +
17 | "\",\"object\":\"error\"" +
18 | ",\"status\":" + status + "}";
19 | }
20 |
21 | public String getCode() {
22 | return code;
23 | }
24 | public void setCode(String code) {
25 | this.code = code;
26 | }
27 | public String getError() {
28 | return error;
29 | }
30 | public void setError(String error) {
31 | this.error = error;
32 | }
33 | public int getStatus() {
34 | return status;
35 | }
36 | public void setStatus(int status) {
37 | this.status = status;
38 | }
39 |
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/ParameterManager.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi;
2 |
3 | import java.util.ArrayDeque;
4 | import java.util.ArrayList;
5 | import java.util.Arrays;
6 | import java.util.Collection;
7 | import java.util.Collections;
8 | import java.util.List;
9 |
10 | import com.lorcanaapi.parameters.MandatorySQLExecutor;
11 |
12 | public class ParameterManager {
13 |
14 | ArrayList parameters;
15 |
16 | public List getParametersWithPriority(int priority) {
17 | List paramList = new ArrayList<>();
18 | for (URLParameter p: parameters) {
19 | if (p.getExecutionPriority() == priority) {
20 | paramList.add(p);
21 | }
22 | }
23 | return paramList;
24 | }
25 |
26 | public ArrayList getSortedParameters() {
27 | return parameters;
28 | }
29 |
30 | public ParameterManager(Collection params) {
31 | registerParameters(params);
32 | }
33 |
34 | public ParameterManager(URLParameter... params) {
35 | registerParameters(Arrays.asList(params));
36 | }
37 |
38 | public ParameterManager() {
39 |
40 | }
41 |
42 | public void registerParameters(Collection params) {
43 | parameters = new ArrayList<>(params);
44 | parameters.add(new MandatorySQLExecutor());
45 | Collections.sort(parameters);
46 | }
47 |
48 | public void registerParameters(URLParameter... params) {
49 | registerParameters(Arrays.asList(params));
50 | }
51 |
52 |
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/handlers/BulkHandler.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.handlers;
2 |
3 | import com.lorcanaapi.ParameterManager;
4 | import com.lorcanaapi.parameters.BulkTypeParameter;
5 | import com.lorcanaapi.precursors.PrecursorManager;
6 | import com.lorcanaapi.precursors.bulkhandler.BulkCardsPrecursor;
7 | import com.lorcanaapi.precursors.bulkhandler.BulkSetsPrecursor;
8 | import com.sun.net.httpserver.HttpHandler;
9 |
10 | public class BulkHandler extends URLHandler implements HttpHandler{
11 |
12 | public BulkHandler() {
13 | super("bulk", "DONOTFETCH", defaultParameterValues(), defaultPrecursorValues());
14 |
15 | }
16 |
17 | private static ParameterManager defaultParameterValues() {
18 | ParameterManager pm = new ParameterManager(new BulkTypeParameter());
19 | return pm;
20 | }
21 |
22 | private static PrecursorManager defaultPrecursorValues() {
23 | PrecursorManager pm = new PrecursorManager(new BulkCardsPrecursor(), new BulkSetsPrecursor());
24 | return pm;
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/handlers/StatisticsHandler.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.handlers;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 | import java.nio.charset.StandardCharsets;
6 | import java.util.HashMap;
7 | import java.util.Map;
8 |
9 | import com.sun.net.httpserver.HttpExchange;
10 | import com.sun.net.httpserver.HttpHandler;
11 |
12 | public class StatisticsHandler implements HttpHandler {
13 |
14 |
15 | static Map handlerRequestCount = new HashMap<>();
16 |
17 | public static void incrementHandlerCount(String handlerName) {
18 | if (handlerRequestCount.containsKey(handlerName)) {
19 | handlerRequestCount.put(handlerName, handlerRequestCount.get(handlerName) + 1);
20 | } else {
21 | handlerRequestCount.put(handlerName, 1);
22 | }
23 | }
24 |
25 |
26 |
27 | @Override
28 | public void handle(HttpExchange t) throws IOException {
29 | StringBuilder response = new StringBuilder();
30 | for (String handler : handlerRequestCount.keySet()) {
31 | response.append(handler + " handler request count: " + handlerRequestCount.get(handler) + "\n");
32 | }
33 |
34 | t.getResponseHeaders().set("Access-Control-Allow-Origin", "*");
35 | t.getResponseHeaders().set("Content-Type",
36 | String.format("text/plain; charset=%s", StandardCharsets.UTF_8));
37 |
38 | t.sendResponseHeaders(200, 0);
39 | OutputStream os = t.getResponseBody();
40 | os.write(response.toString().getBytes());
41 | os.close();
42 |
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/legacy/ErrorJSONObject.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.legacy;
2 |
3 | import org.json.JSONObject;
4 |
5 | public class ErrorJSONObject extends JSONObject{
6 |
7 | public ErrorJSONObject(String code, int status, String details) {
8 | this.put("object", "error");
9 | this.put("code", code);
10 | this.put("status", status);
11 | this.put("details", details);
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/legacy/JSONHandler.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.legacy;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 | import java.nio.charset.StandardCharsets;
6 |
7 | import com.sun.net.httpserver.HttpExchange;
8 | import com.sun.net.httpserver.HttpHandler;
9 |
10 | public class JSONHandler implements HttpHandler {
11 | static int JSONRequestCount = 0;
12 | String response;
13 | @Override
14 | public void handle(HttpExchange t) throws IOException {
15 | // System.out.println("Json response made; it was Json request number " + JSONRequestCount );
16 | JSONRequestCount++;
17 | TrackingHandler.JSONRequestCount++;
18 | t.getResponseHeaders().set("Content-Type", String.format("application/json; charset=%s", StandardCharsets.UTF_8));
19 | t.getResponseHeaders().set("Access-Control-Allow-Origin", "*");
20 | t.sendResponseHeaders(200, response.length());
21 |
22 | OutputStream os = t.getResponseBody();
23 |
24 | os.write(response.getBytes());
25 | os.close();
26 | }
27 | public JSONHandler(String response) {
28 | this.response = response;
29 | }
30 | }
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/legacy/LAPIUtils.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.legacy;
2 |
3 | public class LAPIUtils {
4 |
5 | public static String removeFileExtension(String filename, boolean removeAllExtensions) {
6 | if (filename == null || filename.isEmpty()) {
7 | return filename;
8 | }
9 |
10 | String extPattern = "(? " + minValue);
28 | }
29 |
30 | response.getSqlQuery().setOrderBy("ORDER BY LEVENSHTEIN_RATIO(Name, \"" + compareString + "\") DESC");
31 |
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/FuzzyParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import java.util.ArrayList;
4 |
5 | import com.lorcanaapi.APIResponse;
6 | import com.lorcanaapi.URIBit;
7 | import com.lorcanaapi.URLParameter;
8 |
9 | import me.xdrop.fuzzywuzzy.FuzzySearch;
10 | import me.xdrop.fuzzywuzzy.model.ExtractedResult;
11 |
12 | public class FuzzyParameter extends URLParameter {
13 |
14 | public FuzzyParameter(String parameterKey, int executionPriority) {
15 | super(parameterKey, executionPriority);
16 | }
17 |
18 | public FuzzyParameter(String parameterKey, int executionPriority, String... validPrecursors) {
19 | super(parameterKey, executionPriority, validPrecursors);
20 | }
21 |
22 | @Override
23 | public void modifyReponse(URIBit bit, APIResponse response) {
24 | // String compareString = bit.getValue().split(",")[0];
25 | String name = bit.getValue();
26 | System.out.println(BulkParameterThread.getCardNames().size());
27 | try {
28 | ExtractedResult res = FuzzySearch.extractOne(name, BulkParameterThread.getCardNames());
29 | System.out.println(res.getString());
30 | response.getSqlQuery().setWhere("Where name = \"" + res.getString() + "\"");
31 | response.setSingleResponse(true);
32 | } catch (Exception e) {
33 | e.printStackTrace();
34 | }
35 |
36 | // response.getSqlQuery().setOrderBy("ORDER BY LEVENSHTEIN_RATIO(Name, \"" + compareString + "\") DESC");
37 |
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/FuzzyTestParemeter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.SQLQuery;
5 | import com.lorcanaapi.URIBit;
6 | import com.lorcanaapi.URLParameter;
7 |
8 | public class FuzzyTestParemeter extends URLParameter{
9 |
10 |
11 |
12 | public FuzzyTestParemeter(String parameterKey, int executionPriority) {
13 | super(parameterKey, executionPriority);
14 | }
15 | public FuzzyTestParemeter(String parameterKey, int executionPriority, String... validPrecursors) {
16 | super(parameterKey, executionPriority, validPrecursors);
17 | }
18 |
19 | @Override
20 | public void modifyReponse(URIBit bit, APIResponse response) {
21 | int i = bit.getValue().lastIndexOf(",");
22 | String[] a = {bit.getValue().substring(0, i), bit.getValue().substring(i+1)};
23 | String compareString = a[0];
24 | String minValue = a[1];
25 |
26 | response.getSqlQuery().setSelect("Select Name, LEVENSHTEIN_RATIO(Name, \"" + compareString + "\") as \"Levenshtein Distance\"");
27 | // if (response.getSqlQuery().getWhere().equals(SQLQuery.DEFAULT_WHERE_VALUE)) {
28 | // response.getSqlQuery().setWhere("WHERE LEVENSHTEIN_RATIO(Name, \"" + compareString + "\") > " + minValue);
29 | // }
30 |
31 | response.getSqlQuery().setOrderBy("ORDER BY LEVENSHTEIN_RATIO(Name, \"" + compareString + "\") DESC");
32 |
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/OrderByParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.URIBit;
5 | import com.lorcanaapi.URLParameter;
6 |
7 | public class OrderByParameter extends URLParameter{
8 |
9 | public OrderByParameter(String key, int executionPriority) {
10 | super(key, executionPriority);
11 | }
12 |
13 | @Override
14 | public void modifyReponse(URIBit bit, APIResponse response) {
15 | response.getSqlQuery().setOrderBy("ORDER BY " + bit.getValue());
16 |
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/PageParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import org.json.JSONArray;
4 |
5 | import com.lorcanaapi.APIResponse;
6 | import com.lorcanaapi.URIBit;
7 | import com.lorcanaapi.URLParameter;
8 |
9 | public class PageParameter extends URLParameter {
10 |
11 | public PageParameter(String parameterKey, int executionPriority) {
12 | super(parameterKey, executionPriority);
13 | }
14 |
15 | @Override
16 | public void modifyReponse(URIBit bit, APIResponse response) {
17 | try {
18 | int pageSize = response.getPageSize();
19 | int page = Integer.valueOf(bit.getValue());
20 | int startingPos = pageSize * (page - 1);
21 | System.out.println("the from is:" + response.getSqlQuery().getOrderBy() + " LIMIT " + startingPos + ", " + pageSize);
22 | response.getSqlQuery().setOrderBy(response.getSqlQuery().getOrderBy() + " LIMIT " + startingPos + ", " + pageSize);
23 | } catch (NumberFormatException e) {
24 | e.printStackTrace();
25 | System.out.println("fail");
26 | response.setErrored(true);
27 | response.setErrorMessage("invalid_datatype", "'" + bit.getValue() + "' is not an integer! [Parameter=page]", 200);
28 | }
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/PageSizeParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.URIBit;
5 | import com.lorcanaapi.URLParameter;
6 |
7 | public class PageSizeParameter extends URLParameter {
8 |
9 | public PageSizeParameter(String parameterKey, int executionPriority) {
10 | super(parameterKey, executionPriority);
11 | }
12 |
13 | @Override
14 | public void modifyReponse(URIBit bit, APIResponse response) {
15 | try {
16 | response.setPageSize(Integer.valueOf(bit.getValue()));
17 | } catch (NumberFormatException e) {
18 | response.setErrored(true);
19 | response.setErrorMessage("invalid_datatype", "'" + bit.getValue() + "' is not an integer! [Parameter=pagesize]", 200);
20 | }
21 |
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/RefParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.URIBit;
5 | import com.lorcanaapi.URLParameter;
6 |
7 | public class RefParameter extends URLParameter {
8 |
9 | public RefParameter(String parameterKey, int executionPriority) {
10 | super(parameterKey, executionPriority);
11 | // TODO Auto-generated constructor stub
12 | }
13 |
14 | public RefParameter(String parameterKey, int executionPriority, String... validPrecursors) {
15 | super(parameterKey, executionPriority, validPrecursors);
16 | // TODO Auto-generated constructor stub
17 | }
18 |
19 | @Override
20 | public void modifyReponse(URIBit bit, APIResponse response) {
21 | response.setReference(bit.getValue());
22 | // TODO Auto-generated method stub
23 |
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/SortDirectionParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.URIBit;
5 | import com.lorcanaapi.URLParameter;
6 |
7 | public class SortDirectionParameter extends URLParameter{
8 |
9 | public SortDirectionParameter(String parameterKey, int executionPriority) {
10 | super(parameterKey, executionPriority);
11 | }
12 |
13 | @Override
14 | public void modifyReponse(URIBit bit, APIResponse response) {
15 | String value = bit.getValue().toLowerCase();
16 |
17 | String modifier = value.startsWith("desc") ? "DESC" : "ASC";
18 |
19 | response.getSqlQuery().setOrderBy(response.getSqlQuery().getOrderBy() + " " + modifier);
20 |
21 | }
22 |
23 |
24 |
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/parameters/StrictParameter.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.parameters;
2 |
3 | import java.util.HashMap;
4 |
5 | import com.lorcanaapi.APIResponse;
6 | import com.lorcanaapi.URIBit;
7 | import com.lorcanaapi.URLParameter;
8 |
9 | public class StrictParameter extends URLParameter {
10 |
11 | public StrictParameter(String parameterKey, int executionPriority, String... validPrecursors) {
12 | super(parameterKey, executionPriority, validPrecursors);
13 | }
14 |
15 | public StrictParameter(String parameterKey, int executionPriority) {
16 | super(parameterKey, executionPriority);
17 | }
18 |
19 | @Override
20 | public void modifyReponse(URIBit bit, APIResponse response) {
21 | StringBuilder where = new StringBuilder("WHERE ");
22 | bit.decodeURL();
23 |
24 | for (String v: bit.getAllValues()) {
25 | // System.out.println("v si " +v);
26 | where.append("(NAME ='" + v.toLowerCase() + "')");
27 | where.append(" OR ");
28 | }
29 | response.getSqlQuery().setWhere(where.toString().substring(0, where.length() - 4));
30 |
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/precursors/AllPrecursor.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.precursors;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.URIBit;
5 |
6 | public class AllPrecursor extends URLPrecursor{
7 |
8 |
9 | public AllPrecursor(String precursorString) {
10 | super(precursorString);
11 | }
12 |
13 | @Override
14 | public String getUpdatedURLForHandler(String handler, String URL, APIResponse response) {
15 | switch (handler) {
16 |
17 | case "cards":
18 | return modifyCardsResponse(URL);
19 | case "sets":
20 | return modiftSetsResponse(URL);
21 | default:
22 | // System.out.println("rawr");
23 | response.setErrored(true);
24 | response.setErrorMessage("invalid_handler", getPrecursorString() + " is not appliciable for handler '/" + handler + "/'!", 200);
25 | return URL;
26 | }
27 |
28 | }
29 |
30 | private String modifyCardsResponse(String URL) {
31 | StringBuilder newValue = new StringBuilder(URL);
32 | // If it has no parameters yet, add a ?, if some parameters are already present, add an &
33 | // If this was not the ALL precursor, the code below would be uncommented.
34 | // if (URL.endsWith(getPrecursorString())) {
35 | // newValue.append("?");
36 | // } else {
37 | // newValue.append("&");
38 | // }
39 | // System.out.println("URL pre is:" + URL);
40 | return newValue.toString();
41 | }
42 | private String modiftSetsResponse(String URL) {
43 | return URL;
44 |
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/precursors/FetchPrecursor.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.precursors;
2 |
3 | import com.lorcanaapi.APIResponse;
4 |
5 | public class FetchPrecursor extends URLPrecursor {
6 |
7 | public FetchPrecursor(String precursorString) {
8 | super(precursorString);
9 | // TODO Auto-generated constructor stub
10 | }
11 |
12 | @Override
13 | public String getUpdatedURLForHandler(String handler, String URL, APIResponse response) {
14 | switch (handler) {
15 |
16 | case "cards":
17 | return modifyCardsResponse(URL);
18 | case "sets":
19 | return modifySetsResponse(URL);
20 | default:
21 | response.setErrored(true);
22 | response.setErrorMessage("invalid_hander", getPrecursorString() + " is not appliciable for handler '/" + handler + "/'!", 200);
23 | return URL;
24 | }
25 | }
26 |
27 | private String modifyCardsResponse(String URL) {
28 | return URL;
29 | }
30 |
31 | private String modifySetsResponse(String URL) {
32 | return URL;
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/precursors/PrecursorManager.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.precursors;
2 |
3 | import java.util.ArrayList;
4 | import java.util.Arrays;
5 | import java.util.Collection;
6 | import java.util.Collections;
7 | import java.util.HashMap;
8 |
9 | import com.lorcanaapi.URLParameter;
10 | import com.lorcanaapi.parameters.MandatorySQLExecutor;
11 |
12 | public class PrecursorManager {
13 |
14 |
15 | HashMap precursors = new HashMap();
16 |
17 | public PrecursorManager(Collection params) {
18 | registerParameters(params);
19 | }
20 |
21 | public PrecursorManager(URLPrecursor... params) {
22 | registerParameters(Arrays.asList(params));
23 | }
24 |
25 | public PrecursorManager() {
26 |
27 | }
28 |
29 | public Collection getAllPrecursors() {
30 | return precursors.keySet();
31 |
32 | }
33 |
34 | public void registerParameters(Collection params) {
35 | for (URLPrecursor precursor : params) {
36 | precursors.put(precursor.getPrecursorString(), precursor);
37 | }
38 | }
39 |
40 | public void registerParameters(URLPrecursor... params) {
41 | registerParameters(Arrays.asList(params));
42 | }
43 |
44 | public URLPrecursor getPrecursorFromString(String string) {
45 | return precursors.get(string);
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/precursors/URLPrecursor.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.precursors;
2 |
3 | import com.lorcanaapi.APIResponse;
4 |
5 | abstract public class URLPrecursor {
6 |
7 |
8 | abstract public String getUpdatedURLForHandler(String handler, String url, APIResponse response);
9 |
10 | String precursorString;
11 |
12 | public String getPrecursorString() {
13 | return precursorString;
14 | }
15 | public URLPrecursor(String precursorString) {
16 | this.precursorString = precursorString;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/precursors/bulkhandler/BulkCardsPrecursor.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.precursors.bulkhandler;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.precursors.URLPrecursor;
5 |
6 | public class BulkCardsPrecursor extends URLPrecursor {
7 |
8 | public BulkCardsPrecursor() {
9 | super("cards");
10 | // TODO Auto-generated constructor stub
11 | }
12 |
13 | @Override
14 | public String getUpdatedURLForHandler(String handler, String URL, APIResponse response) {
15 | switch (handler) {
16 | case "bulk":
17 | return modifyBulkResponse(URL);
18 | default:
19 | response.setErrored(true);
20 | response.setErrorMessage("invalid_hander", getPrecursorString() + " must only be used by '/bulk/' handler!", 200);
21 | return URL;
22 | }
23 | }
24 |
25 | private String modifyBulkResponse(String URL) {
26 | StringBuilder newValue = new StringBuilder(URL);
27 | if (URL.endsWith(getPrecursorString())) {
28 | newValue.append("?");
29 | } else {
30 | newValue.append("&");
31 | }
32 | newValue.append("bulktype=cards");
33 | return newValue.toString();
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/com/lorcanaapi/precursors/bulkhandler/BulkSetsPrecursor.java:
--------------------------------------------------------------------------------
1 | package com.lorcanaapi.precursors.bulkhandler;
2 |
3 | import com.lorcanaapi.APIResponse;
4 | import com.lorcanaapi.precursors.URLPrecursor;
5 |
6 | public class BulkSetsPrecursor extends URLPrecursor {
7 |
8 | public BulkSetsPrecursor() {
9 | super("sets");
10 | // TODO Auto-generated constructor stub
11 | }
12 |
13 | @Override
14 | public String getUpdatedURLForHandler(String handler, String URL, APIResponse response) {
15 | switch (handler) {
16 | case "bulk":
17 | return modifyBulkResponse(URL);
18 | default:
19 | response.setErrored(true);
20 | response.setErrorMessage("invalid_hander", getPrecursorString() + " must only be used by '/bulk/' handler!", 200);
21 | return URL;
22 | }
23 | }
24 |
25 | private String modifyBulkResponse(String URL) {
26 | StringBuilder newValue = new StringBuilder(URL);
27 | if (URL.endsWith(getPrecursorString())) {
28 | newValue.append("?");
29 | } else {
30 | newValue.append("&");
31 | }
32 | newValue.append("bulktype=sets");
33 | return newValue.toString();
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/test/java/com/kinsta/helloworld/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.kinsta.helloworld;
2 |
3 | import static org.junit.Assert.assertTrue;
4 |
5 | import org.junit.Test;
6 |
7 | public class AppTest
8 | {
9 | @Test
10 | public void shouldAnswerWithTrue()
11 | {
12 | assertTrue( true );
13 | }
14 | }
15 |
--------------------------------------------------------------------------------