Thread: [Essentials Script] Pokémon TCG mod
View Single Post
Old January 31st, 2013 (3:51 PM).
donavannj's Avatar
donavannj donavannj is offline
  • Moderator
  • Crystal Tier
Join Date: Mar 2005
Location: 'cause it get cold like Minnesota
Age: 26
Gender: Male
Posts: 21,006
Originally Posted by Maruno View Post
Your knowledge would be very helpful.

Here's a couple of questions to start off with:
  1. Are the Metronome attacks for Clefairy and Clefable intended to be identical? Clefable also says to ignore costs of attack (e.g. Charizard's "discard 2 energy"), whereas Clefairy doesn't.
  2. Should Raticate's Super Fang attack ignore all effects/weaknesses/resistances and always deal the amount of damage it says, or is that calculation just for the base damage and it would then be affected by PlusPower and the like?
I'm sure I'll come across more questions when I get round to the various effects. If you can think of any cards/effects/interactions from Base/Jungle/Fossil that you think might be tricky, please let me know.
1. Based on the fact that both cards were reprinted in Base Set 2 and follow the wording on Jungle Clefable, they're both intended to work the way Jungle Clefable is worded.

2. Unless the attack specifically says to ignore those effects, those effects still apply to Super Fang. The attack has to specifically say to ignore those effects.

One thing I was pleased to discover was how cards like Pokémon Breeder should work - the intermediate card (if skipping from Basic to Stage 2) must exist as a card, even if it's not in the deck, and it doesn't work on Baby Pokémon. That makes things more convenient to code.
There may be a catch if someone were to implement a later card-set into your engine, as that would make a later Alakazam card (it was printed in the Diamond & Pearl era along with an Abra, but no Kadabra was ever printed to accompany those two in that set or any other set released around it) effectively unplayable if the person implementing that set wasn't aware of this being how your code processes how cards like Pokemon Breeder and Rare Candy work. That's probably a problem to save for a later time, however.


If possible, could you have a look at the order in which things happen during an attack? It's as follows:

  def pbUseAttack(user)
    @battle.pbDisplay(_INTL("{1} used {2}!",,
    target=pbGetTarget(user)                      # Usually done automatically.
    return if !pbBabyCheck(user,target)
    return if !pbOnStartUse(user)                 # e.g. Flip a coin. If Tails, this attack does nothing.
    pbPayAttackCost(user,target)                  # e.g. Discard 2 energy.
    return if !pbConfusionCheck(user)
    if target
      dmg=pbModifyDamageBefore(dmg,user,target)   # Modifiers on attacker
      dmg=pbEffectiveness(dmg,user,target)        # Weakness/resistance
      dmg=pbModifyDamageAfter(dmg,user,target)    # Modifiers on target
I've tried to take account of whatever I can think of, but I'm sure there'll be things I've overlooked. If an attack can't be used (e.g. don't have enough energy, Farfetch'd's Leek Slap), it can't even be chosen to be used in the first place, so the above code assumes the attack can be used. Checking fainting cards is a separate thing that happens immediately after the attack (as well as on other occasions).
That seems to be largely the correct order by current rules. I have been looking, and I have yet to see a damage booster or a damage reducing card/effect break this order, other than the original PlusPower print, which says to apply the damage after weakness and resistance.

Yes, it's an alpha. There aren't yet any limits on what you can do in your turn - it helps with debugging, they're easy enough to implement, and I've got other things to worry about at the moment.
Ah, okay. Makes sense.
idol trash and game nerd