Page 93 of 441

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 15:49
by zerker2000
Marek14 wrote:Minor misinterpretation of card text: Vampiric Tutor and others cause life loss regardless of whether or not a card is retrieved.
Do you mean if the spell doesn't resolve?

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 16:39
by Marek14
zerker2000 wrote:
Marek14 wrote:Minor misinterpretation of card text: Vampiric Tutor and others cause life loss regardless of whether or not a card is retrieved.
Do you mean if the spell doesn't resolve?
Oh. If the spell doesn't resolve, then no life is lost, of course.

I don't know why, though, when you look at the original text, but that is what Oracle says.

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 16:49
by DennisBergkamp
I'll fix this (which is also the case for Imperial Seal, Cruel Tutor).

AI Counterspell

PostPosted: 06 Oct 2009, 17:54
by mtgrares
I just got Remanded and it was surprising, lol.

When playing MTG Forge the AI counterspell code did mess up three times. I have three stack traces but they all look the same. I could have saved what cards the AI had in hand but I forgot, I'll do better next time.

Code: Select all
An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
   http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
   mtgrares@yahoo.com

0

Detailed error trace:
java.lang.ArrayIndexOutOfBoundsException: 0
   at ComputerAI_counterSpells$1.addCard(ComputerAI_counterSpells.java:82)
   at CardList.filter(CardList.java:125)
   at ComputerAI_counterSpells.getPlayableCounterSpells(ComputerAI_counterSpells.java:78)
   at ComputerAI_counterSpells.hasPlayableCounterSpells(ComputerAI_counterSpells.java:66)
   at ComputerAI_counterSpells.counter_CreatureSpell(ComputerAI_counterSpells.java:15)
   at ComputerAI_counterSpells.counter_Spell(ComputerAI_counterSpells.java:7)
   at MagicStack.push(MagicStack.java:35)
   at MagicStack.add(MagicStack.java:18)
   at Input_PayManaCost.done(Input_PayManaCost.java:66)
   at Input_PayManaCost.selectCard(Input_PayManaCost.java:51)
   at GuiInput.selectCard(GuiInput.java:35)
   at GuiDisplay3$8.mousePressed(GuiDisplay3.java:309)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 19:24
by DennisBergkamp
Ah yes, this should be fixed for the next version. The problem is this line (which appears twice in the counterspell code) :

Code: Select all
SpellAbility sa = c.getSpellAbility()[0];
Apparently some cards don't have any spellAbilities (maybe some lands?)... putting this line right above should fix it:

Code: Select all
if (c.getSpellAbility().length == 0)
       return false;

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 20:06
by DennisBergkamp
Rob Cashwalker wrote:
DennisBergkamp wrote:Strange, don't think I changed anything. Was your 3/3 a first striker too, by the way?
No.

My 2/1 had first strike, the computer's 1/2 did not. The computer's 3/3 had first strike, my 3/3 did not. Neither had any other source of damage.
Strange, I cannot reproduce this. At least in case of the 3/3s it was correct, but I'm not sure what happened with the 2/1.
On a related issue, when testing this, had trouble getting my 2/1 first striker blocked by the 1/2 (in fact, compy still wouldn't block it when he was at 2 life).
I tested this instead with a 1/1 attacking Goblin Lackey (who got blocked by the 1/2) and then pumped him to 2/1 first strike with a Kindled Fury. 1/2 died, Goblin Lackey survived (as expected).

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 21:18
by Rob Cashwalker
Starting to make some sense then...

There's a White Intrinsic First Striker with a +1/+0 pump ability. The name escapes me at the moment. It was chosen to be blocked as a 1/1, then pumped to 2/1 before damage was dealt, at least I'm pretty sure it was before that step... now that I think about it, it's a logical explanation.

Re: Current Known Bugs list

PostPosted: 06 Oct 2009, 21:59
by DennisBergkamp
Oh so it was probably pumped after first strike damage, but I'm not sure if it's possible in MTGForge.

Re: Current Known Bugs list

PostPosted: 07 Oct 2009, 02:53
by zerker2000
What's not possible? Playing an ability while "first strike damage is on stack"? That's not only possible, the behavior actually follows the (old) rules to the letter :P.

Re: Current Known Bugs list

PostPosted: 07 Oct 2009, 03:58
by DennisBergkamp
Ah, you're right. For a second I thought forge skipped the "First Strike damage is on the stack" "phase", if there were no creatures with First Strike attacking.

Re: Current Known Bugs list

PostPosted: 07 Oct 2009, 17:55
by apthaven
I've noticed that Think Twice and Firebolt don't have flashback.

Re: Current Known Bugs list

PostPosted: 07 Oct 2009, 19:00
by DennisBergkamp
I've fixed Think Twice in the next version...
Firebolt is trickier, because it's targeted. But it should be fixable though, I'll try and fix both Firebolt and Strangling Soot for the "next next" version.

Re: Current Known Bugs list

PostPosted: 07 Oct 2009, 21:40
by Chris H.
DennisBergkamp wrote:I've fixed Think Twice in the next version...
Firebolt is trickier, because it's targeted. But it should be fixable though, I'll try and fix both Firebolt and Strangling Soot for the "next next" version.
Ahem, [-o<

is this possibly a hint that with the next version flashback will work properly with targeted spells. :)

Re: Current Known Bugs list

PostPosted: 07 Oct 2009, 22:45
by DennisBergkamp
What I meant to say is the version after the next :)

Re: Current Known Bugs list

PostPosted: 08 Oct 2009, 05:46
by nantuko84
I had the similar problems with flashback cards with targets long ago, and as far as I remember it was solved just by copying target parameters.
I've looked into your CardFactoryUtil, could you try the following (not tested, just idea):

Code: Select all
public static SpellAbility ability_Flashback(...)
...
SpellAbility spell = sourceCard.getSpellAbility()[0];
... // at the end
flashback.setStackDescription("Flashback: " + sourceCard.getName());
flashback.setBeforePayMana(spell.getBeforePayMana());
won't it call CardFactoryUtil.input_targetCreaturePlayer(...)?
if it does, probably you'll also need to copy target in flashback.resolve()

does that make sense?