from dataclasses import  dataclass
from enum import Enum
from abc import ABC

from card import *

ALL_CARDS = [
    Card(
        name = "The Charismatic Song",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = True
    ),
    Card(
        name = "The Cloaked Sage",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = True
    ),
    Card(
        name = "The Divine Arrow",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = True
    ),
    Card(
        name = "The Fist of Reason",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = True
    ),
    Card(
        name = "The Protecting Horn",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = True
    ),
    Card(
        name = "The Shadow Claw",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = True
    ),
    Card(
        name = "Abyss Queen",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Anuran Cauldron",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Artic Aries",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Bloodwing",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Corrupted Sabretooth",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Crowned Serpent",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Dark Dragon King",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Dracos",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Malamammoth",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Mega Slime",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Orthus",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Rex Major",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Terratuga",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Titan Wyvern",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Warworn Owlbear",
        class_type = CardType.MONSTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Bad Axe",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Bear Claw",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Beary Wise",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Fury Knuckle",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Heavy Bear",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Pan Chucks",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Qi Bear",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Tough Teddy",
        class_type = HeroClass.FIGHTER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Dodgy Dealer",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Fuzzy Cheeks",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Greedy Cheeks",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Lucky Bucky",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Mellow Dee",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Napping Nibbles",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Peanut",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Tipsy Tootie",
        class_type = HeroClass.BARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Calming Voice",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Guiding Light",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Holy Curselifter",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Iron Resolve",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Mighty Blade",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Radiant Horn",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Vibrant Glow",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Wise Shield",
        class_type = HeroClass.GUARDIAN,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Bullseye",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Hook",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Lookie Rookie",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Quick Draw",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Serious Grey",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Sharp Fox",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Wildshot",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Wily Red",
        class_type = HeroClass.RANGER,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Kit Napper",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Meowzio",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Plundering Puma",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Shurikitty",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Silent Shadow",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Slippery Paws",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Sly Pickings",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Smooth Mimimeow",
        class_type = HeroClass.THIEF,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Bun Bun",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Buttons",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Fluffy",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Hopper",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Snowball",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Spooky",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Whiskers",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
    Card(
        name = "Wiggles",
        class_type = HeroClass.WIZARD,
        ability = Ability(""),
        is_leader = False
    ),
]