Example #1
0
def powerfulaxe(attacker, defender):
    check_energy_cost(attacker, 2, Fire=1, Metal=1)
    damage = 10
    for key in attacker.energy.keys():
        if key.upper() in Type.__members__:
            damage += 40 * attacker.energy[key]
    defender.take_damage(damage, attacker)
Example #2
0
def waterarrow(attacker, defender):
    check_energy_cost(attacker, 1, Water=1)
    target = attacker.player.prompt_select_opp()
    if target == defender:
        defender.take_damage(20, attacker)
    else:
        target.take_damage(20, attacker, "noweak", "nores")
Example #3
0
def batonpass(attacker, defender):
    check_energy_cost(attacker, 2)
    defender.take_damage(40, attacker)
    switch = attacker.player.prompt_select_ally()
    if switch != attacker:
        attacker.player.active = switch
        attacker.player.bench.append(attacker)
Example #4
0
def creativeburst(attacker, defender):
    if attacker.player.gx_used:
        return
    check_energy_cost(attacker, 4, Psychic=2)
    for _ in range(2):
        attacker.player.play_pokemon(attacker.player.prompt_card_from_deck("ispokemon"))
    attacker.player.gx_used = True
Example #5
0
def luringflame(attacker, defender):
    check_energy_cost(attacker, 1, Fire=1)
    target = attacker.player.prompt_select_opp("notactive")
    defender.player.bench.append(defender)
    defender.player.bench.remove(target)
    defender.active = target
    target.tokens.append("burned")
Example #6
0
def argentwing(attacker, defender):
    check_energy_cost(attacker, 3)
    damage = 60
    if len(defender.global_abilities) + len(defender.abilities) + len(
            defender.personal_abilities) > 0:
        damage += 60
    defender.take_damage(damage, attacker)
Example #7
0
def reversethrust(attacker, defender):
    check_energy_cost(attacker, 1, Water=1)
    defender.take_damage(30, attacker)
    switch = attacker.player.prompt_select_ally("notactive")
    attacker.player.bench.remove(switch)
    attacker.player.bench.append(attacker)
    attacker.player.active = switch
Example #8
0
def ragingout(attacker, defender):
    if attacker.player.gx_used:
        return
    check_energy_cost(attacker, 3, Fire=1)
    for _ in range(10):
        defender.player.discard.append(defender.player.deck.stack.pop(0))
    attacker.player.gx_used = True
Example #9
0
def photongeyser(attacker, defender):
    check_energy_cost(attacker, 2, Metal=1, Psychic=1)
    damage = 20 + 80 * attacker.energy["Psychic"]
    for _ in range(attacker.energy["Psychic"]):
        attacker.other_attached.remove("psychic")
        attacker.player.discard.append("psychic")
    attacker.energy.pop("Psychic")
    defender.take_damage(damage, attacker)
Example #10
0
def aeroforce(attacker, defender):
    check_energy_cost(attacker, 4)
    defender.take_damage(130)
    energy = attacker.player.prompt_select_other(
        attacker.energy.as_card_list())
    attacker.energy[energy.typestring] -= 1
    attacker.other_attached.remove(energy.id)
    attacker.player.discard.append(energy.id)
Example #11
0
def aquaring(attacker, defender):
    check_energy_cost(attacker, 1)
    defender.take_damage(20, attacker)
    switch = attacker.player.prompt_select_ally()
    if switch in attacker.player.bench:
        attacker.player.bench.remove(switch)
        attacker.player.bench.append(attacker)
        attacker.player.active = switch
Example #12
0
def blackray(attacker, defender):
    if attacker.player.gx_used:
        return
    check_energy_cost(attacker, 3)
    for i in defender.player.bench + [defender]:
        if i.flair in [Flair.EX, Flair.GX]:
            i.take_damage(100, "noweak")
    attacker.player.gx_used = True
Example #13
0
def flamethrower(attacker, defender):
    check_energy_cost(attacker, 3, Fire=2)
    defender.take_damage(80, attacker)
    energy = attacker.player.prompt_select_other(
        attacker.energy.as_card_list())
    attacker.energy[energy.typestring] -= 1
    attacker.other_attached.remove(energy.id)
    attacker.player.discard.append(energy.id)
Example #14
0
def gyroball(attacker, defender):
    check_energy_cost(attacker, 3, Metal=1)
    defender.take_damage(60, attacker)
    switch = attacker.player.prompt_select_ally("notactive", "remove")
    attacker.player.bench.append(attacker)
    attacker.player.active = switch
    switch = defender.player.prompt_select_ally("notactive", "remove")
    defender.player.bench.append(defender)
    defender.player.active = switch
Example #15
0
def skyjudgment(attacker, defender):
    check_energy_cost(attacker, 4, Fire=1, Electric=2)
    defender.take_damage(190, attacker)
    for _ in range(3):
        energy = attacker.player.prompt_select_other(
            attacker.energy.as_card_list())
        attacker.energy[energy.typestring] -= 1
        attacker.other_attached.remove(energy.id)
        attacker.player.discard.append(energy.id)
Example #16
0
def crunch(attacker, defender):
    check_energy_cost(attacker, 2)
    defender.take_damage(30, attacker)
    if attacker.player.flip_coin():
        _type = defender.player.prompt_select_other(defender.energy.keys())
        defender.energy[_type] -= 1
        if defender.energy[_type] == 0:
            defender.energy.pop(_type)
        defender.player.discard.append(_type)
Example #17
0
def crimsonstorm(attacker, defender):
    check_energy_cost(attacker, 5, Fire=3)
    defender.take_damage(300, attacker)
    for _ in range(3):
        energy = attacker.player.prompt_select_other(
            attacker.energy.as_card_list(), _type="fire")
        attacker.energy["Fire"] -= 1
        attacker.other_attached.remove(energy.id)
        attacker.player.discard.append(energy.id)
Example #18
0
def toweringsplash(attacker, defender):
    if attacker.player.gx_used:
        return
    check_energy_cost(attacker, 1, Water=1)
    defender.take_damage(10, attacker)
    if attacker.energy["Water"] >= 8:
        for i in defender.player.bench:
            i.take_damage(100, attacker, "noweak", "nores")
    attacker.player.gx_used = True
Example #19
0
def skyscorchinglight(attacker, defender):
    check_energy_cost(attacker, 2, Metal=1, Psychic=1)
    if attacker.player.gx_used:
        return
    if len(attacker.player.prize) + len(defender.player.prize) > 6:
        return
    for i in [defender] + defender.player.bench:
        i.take_damage(60, "nomod")
    attacker.player.gx_used = True
Example #20
0
def fierylicks(attacker, defender):
    check_energy_cost(attacker, 3, Fire=3)
    damage = 0
    for _ in range(4):
        card = attacker.player.deck.draw()
        if card.id == "fire":
            damage += 50
        attacker.player.discard.append(card.id)
    defender.take_damage(damage, attacker)
Example #21
0
def firestream(attacker, defender):
    check_energy_cost(attacker, 3, Fire=1)
    defender.take_damage(90, attacker)
    energy = attacker.player.prompt_select_other(
        attacker.energy.as_card_list(), _type="fire")
    attacker.energy["Fire"] -= 1
    attacker.other_attached.remove(energy.id)
    attacker.player.discard.append(energy.id)
    for p in defender.player.bench:
        p.take_damage(20, attacker, "noweak")
Example #22
0
def oceanloop(attacker, defender):
    check_energy_cost(attacker, 4, Water=3)
    defender.take_damage(210, attacker)
    for _ in range(2):
        energy = attacker.player.prompt_select_other(attacker.energy.as_card_list(), _type="water")
        attacker.player.hand.append(energy)
        attacker.energy["Water"] -= 1
        if attacker.energy["Water"] == 0:
            attacker.energy.pop("Water")
        attacker.other_attached.remove("water")
Example #23
0
def dragonburst(attacker, defender):
    check_energy_cost(attacker, 2, Fire=1, Electric=1)
    energy_type = attacker.player.prompt_select_other(
        [get("fire"), get("electric")]).id
    damage = attacker.energy[energy_type.title()] * 60
    for _ in range(attacker.energy[energy_type.title()]):
        attacker.player.discard.append(energy_type.lower())
    attacker.energy.pop(energy_type.title())
    attacker.other_attached = [
        i for i in attacker.other_attached if i != energy_type
    ]
    defender.take_damage(damage, attacker)
Example #24
0
def hydroshot(attacker, defender):
    check_energy_cost(attacker, 3, Water=2)
    for _ in range(2):
        energy = attacker.player.prompt_select_other(
            attacker.energy.as_card_list(), _type="fire")
        attacker.energy["Fire"] -= 1
        attacker.other_attached.remove(energy.id)
        attacker.player.discard.append(energy.id)
    target = attacker.player.prompt_select_opp()
    if target == defender:
        defender.take_damage(120, attacker)
    else:
        target.take_damage(120, attacker, "noweak", "nores")
Example #25
0
def prismaticburst(attacker, defender):
    check_energy_cost(attacker, 3)
    damage = 10
    if "Psychic" in attacker.energy.keys():
        damage += 60 * attacker.energy["Psychic"]
        attacker.energy.pop("Psychic")
    if "Prism" in attacker.energy.keys():
        damage += 60 * attacker.energy["Prism"]
        attacker.energy.pop("Prism")
    attacker.other_attached = [
        i for i in attacker.other_attached
        if i not in ["psychic", "bwnd-93/99"]
    ]
Example #26
0
def ragingdestruction(attacker, defender):
    check_energy_cost(attacker, 1, Fire=1)
    for _ in range(8):
        c = attacker.player.deck.draw()
        if c.id == "fire":
            c.override_cap = True
            c.use(attacker)
        elif type(c) == TrainerCard and c.trainertype == TrainerType.ENRG:
            c.data["overridecap"] = True
            c.data["target"] = attacker
            c.use()
        else:
            attacker.player.discard.append(c.id)
Example #27
0
def crimsonflamepillar(attacker, defender):
    if attacker.player.gx_used:
        return
    check_energy_cost(attacker, 1, Fire=1)
    for _ in range(5):
        energy = attacker.player.prompt_select_other(
            [get(i) for i in attacker.player.discard], "isenergy", "basic")
        target = attacker.player.prompt_select_ally()
        energy.override_cap = True
        energy.use(target)
    if attacker.energy.total() >= 2:
        defender.rotation = "confused"
        defender.tokens.append("burned")
Example #28
0
def celestialroar(attacker, defender):
    check_energy_cost(attacker, 1)
    cards = [attacker.player.deck.draw() for _ in range(3)]
    for i in cards:
        if type(i) == EnergyCard:
            i.override_cap = True
            i.use(attacker)
        elif type(i) == TrainerCard and i.trainertype == TrainerType.ENRG:
            i.data["overridecap"] = True
            i.data["target"] = attacker
            i.use()
        else:
            attacker.player.discard.append(i.id)
Example #29
0
def energyloop(attacker, defender):
    check_energy_cost(attacker, 1, Metal=1)
    defender.take_damage(30, attacker)
    energy = attacker.player.prompt_select_other(attacker.energy)
    attacker.energy[energy] -= 1
    if attacker.energy[energy] == 0:
        attacker.energy.pop(energy)
    if energy.upper() in Type.__members__:
        attacker.player.hand.append(get(energy.lower(), attacker.player))
    else:
        for id in attacker.special_energy:
            c = get(id)
            if energy in c.name:
                attacker.player.hand.append(c)
                break
Example #30
0
def dreadfulflames(attacker, defender):
    if attacker.player.gx_used:
        return
    check_energy_cost(attacker, 5, Fire=2)
    defender.take_damage(250, attacker)
    for i in defender.player.hand + [defender]:
        if i.energy.total() > 1:
            e = attacker.player.prompt_select_other(i.energy.as_card_list())
            i.other_attached.remove(e.id)
            i.energy[e.id.title()] -= 1
            if i.energy[e.id.title()] == 0:
                i.energy.pop(e.id.title())
        elif i.energy.total() == 1:
            eid = i.energy.keys()[0]
            i.other_attached.remove(eid)
            i.energy.pop(eid.title())