I have been looking at the source, and see in the unimplemented abilities that Affinity is listed. It looks like it's supposed to return an ability with no effect. I tried frogmite, and the card did not work. I took a closer look and all affinity cards have a template with the line
- Code: Select all
abilities.add(affinity(subtypes=[Artifact]))
But in the unimplemented abilities in the source the argument is actually types, not subtypes. If you change the syntax on frogmite to
- Code: Select all
abilities.add(affinity(types=[Artifact]))
Frogmite is playable (although always at 4 mana), and does not leave an error on the error log. I think this is how the unimplemented ability is supposed to work until Affinity gets coded, but I was wondering if on the next build you could go into the unimplemented abilities and just change Affinity's argument to subtypes instead of types. This way all the pre-generated cards should at least be playable for their absurdly high casting cost.
currently it looks like this:
- Code: Select all
def affinity(types):
return CardStaticAbility(no_effects, keyword="affinity", zone="stack")
but I think changing to this:
- Code: Select all
def affinity(subtypes):
return CardStaticAbility(no_effects, keyword="affinity", zone="stack")
will make affinity cards "work" (as in not give errors & be playable for their full mana cost).
found in \src\engine\Ability\UnimplimentedAbility