It is currently 15 Aug 2025, 15:13
   
Text Size

SVN Bug Reports

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: SVN Bug Reports

Postby Jaedayr » 25 Feb 2011, 19:26

r6829

My Test.dck file includes the following line.

Code: Select all
8 Forest
In the editor I have Forest cards from seven different sets, but if I want to add another Forest card I have only one set to chose from. I closed the editor, came back, opened a different deck, then reopened Test. Now I have Forest cards from eight different sets.

Is this the way it should be or is this a work in progress?

*edit*

I think I figured it out. If you create a deck with no set info, when you go into Deck Editor it randomly assigns set info, which is then saved with the dck if you save it. Since I didn't save it the first time, no set info was saved and the second editor session assigned new random sets.

Do I get the award of the day for bugging the Devs with pesky questions? :roll:
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby lazylockie » 25 Feb 2011, 21:59

r6832

Umezawa's Jitte still needs fixing. It triggers on any kind of combat damage.

T:Mode$ DamageDone | ValidSource$ Creature.AttachedBy | ValidTarget$ Opponent | CombatDamage$ True | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage, put two charge counters on CARDNAME.
also,

Image

Uploaded with ImageShack.us

AI blocking with tapped creatures?
It seems the issue is on First Strikers. 2 First Strike dudes (Ambush Party) blocked my Drana, Kalastria Bloodchief. The creatures that are blocking tapped also happen to have First Strike/Double Strike
Last edited by lazylockie on 26 Feb 2011, 00:19, edited 2 times in total.
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: SVN Bug Reports

Postby Replika » 25 Feb 2011, 22:58

r6833

Ninjutsu works wrong. It can't be used during the declare blockers step after blockers are declared.

Transmute has the same search problem that Tezzeret the Seeker had: It shows only one list instead of first the whole deck and then all legal choices.

The AI still attacks with 1/1s and 2/2s into Basking Rootwalla with pump mana up.
Replika
 
Posts: 115
Joined: 30 Jan 2011, 21:15
Has thanked: 2 times
Been thanked: 3 times

Re: SVN Bug Reports

Postby friarsol » 25 Feb 2011, 23:40

Replika wrote:r6833

Ninjutsu works wrong. It can't be used during the declare blockers step after blockers are declared.

Transmute has the same search problem that Tezzeret the Seeker had: It shows only one list instead of first the whole deck and then all legal choices.

The AI still attacks with 1/1s and 2/2s into Basking Rootwalla with pump mana up.
Care to elaborate on why you think Ninjutsu is wrong? What does it do and what do you think it shouldn't be able to do?

We're well aware that the AI doesn't know about creatures that can pump themselves when deciding about attackers, things like this are in the works but may take some time to implement.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Replika » 26 Feb 2011, 14:01

The rules say that a creature is "unblocked" if the blocers were declared and it, well, wasn't blocked. Much like a creature is "attacking" after the attackers were declared and "Mode$ attacks" triggers trigger during the declare attackers step, Ninjutsu should be usable during the declare blockers step (and all following combat steps). The first step in which I was able to use Ninjutsu was the first strike combat damage step (which shouldn't even exist if there is no first striking creature when the declare blockers step is left, but that is irrelevant here).
Replika
 
Posts: 115
Joined: 30 Jan 2011, 21:15
Has thanked: 2 times
Been thanked: 3 times

Re: SVN Bug Reports

Postby Sloth » 26 Feb 2011, 15:06

lazylockie wrote:AI blocking with tapped creatures?
It seems the issue is on First Strikers. 2 First Strike dudes (Ambush Party) blocked my Drana, Kalastria Bloodchief. The creatures that are blocking tapped also happen to have First Strike/Double Strike
This is fixed now. Thanks lazylockie.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: SVN Bug Reports

Postby Jaedayr » 26 Feb 2011, 22:18

Jaedayr wrote:
Fnoed wrote:Can you attach the res/quest/questdata.dat file?
More info, using r6850

I renamed quest.dat and started a new quest and the file got rebuilt. I went to bazaar and bought the plant wall. The gold disappeared but it did not update to say I owned a wall. I hit Buy again and it took 100 more gold. I went into a game and I had a lvl 2 wall. I went back to bazaar and hit Buy, spent 100 gold and had a lvl 3 wall, but it still did not update the bazaar info. What else can I delete/change if anything?
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 26 Feb 2011, 22:44

r6850

I had True Conviction in play and a Heavy Arbalest equipped on Augury Owl. I tapped it to do damage and lifelink activated twice even though the target Smoldering Butcher was in the graveyard after the first hit. Scry 3 also activated twice, once after each lifelink.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 26 Feb 2011, 23:10

r6850

When Volcanic Fallout resolves, here is the message.

1. Volcanic Fallout - CARDNAME deals 2 damage to each creature and each player.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby friarsol » 26 Feb 2011, 23:20

Jaedayr wrote:r6850

I had True Conviction in play and a Heavy Arbalest equipped on Augury Owl. I tapped it to do damage and lifelink activated twice even though the target Smoldering Butcher was in the graveyard after the first hit. Scry 3 also activated twice, once after each lifelink.
This whole situation seems weird to me. If you activate the Heavy Arbalest ability, you should only do damage once. (Double strike only affects combat damage) Also, Augury Owl has an ETB ability, so Scry shouldn't trigger. This is probably buggy code, based on bad/old assumptions.

Was the Owl blocking? Maybe you gained life for the Arbalest damage (since the creature gains the ability) and once for First Strike? Then during "regular" strike, the creature wasn't there and no damage/life link occurred.

One thing is clear: we do need to convert the Scry keyword to the Scry AF/DB. I'm not sure how long it's been around, but it looks like Augury Owl is the only one that uses it. So should be extremely painless.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby friarsol » 26 Feb 2011, 23:36

Replika wrote:The rules say that a creature is "unblocked" if the blocers were declared and it, well, wasn't blocked. Much like a creature is "attacking" after the attackers were declared and "Mode$ attacks" triggers trigger during the declare attackers step, Ninjutsu should be usable during the declare blockers step (and all following combat steps). The first step in which I was able to use Ninjutsu was the first strike combat damage step (which shouldn't even exist if there is no first striking creature when the declare blockers step is left, but that is irrelevant here).
This might be more of an issue on when the game marks things as unblocked. I'll see if I can get some time tomorrow to debug.

Edit: Just looking at the code real quick, that's exactly what the problem is. Thanks for the heads up, shouldn't be too hard of a fix.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Jaedayr » 26 Feb 2011, 23:43

friarsol wrote:
Jaedayr wrote:r6850

I had True Conviction in play and a Heavy Arbalest equipped on Augury Owl. I tapped it to do damage and lifelink activated twice even though the target Smoldering Butcher was in the graveyard after the first hit. Scry 3 also activated twice, once after each lifelink.
This whole situation seems weird to me. If you activate the Heavy Arbalest ability, you should only do damage once. (Double strike only affects combat damage) Also, Augury Owl has an ETB ability, so Scry shouldn't trigger. This is probably buggy code, based on bad/old assumptions.

Was the Owl blocking? Maybe you gained life for the Arbalest damage (since the creature gains the ability) and once for First Strike? Then during "regular" strike, the creature wasn't there and no damage/life link occurred.

One thing is clear: we do need to convert the Scry keyword to the Scry AF/DB. I'm not sure how long it's been around, but it looks like Augury Owl is the only one that uses it. So should be extremely painless.
The Owl was neither attacking or blocking, it was during my turn before combat. The Owl was in play from a previous turn, I played the Arbalest, equipped and then tapped.
Last edited by Jaedayr on 26 Feb 2011, 23:48, edited 1 time in total.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 26 Feb 2011, 23:44

r6850

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
   mtgerror@yahoo.com


There is an error in the card code for Identity Crisis:



Version:
Forge -- official beta: $Date: 2011-01-06 11:34:48 -0500 (Thu, 06 Jan 2011) $, SVN revision: $Revision: 4891 $

OS: Windows XP Version: 5.1 Architecture: x86

Java Version: 1.6.0_24 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.RuntimeException: AllZone : getZone() invalid parameters Library null
   at forge.AllZone.getZone(AllZone.java:108)
   at forge.CardFactory_Sorceries$6.canPlayAI(CardFactory_Sorceries.java:196)
   at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:178)
   at forge.ComputerAI_General.getMain1(ComputerAI_General.java:112)
   at forge.ComputerAI_General.playCards(ComputerAI_General.java:34)
   at forge.ComputerAI_General.main1(ComputerAI_General.java:21)
   at forge.ComputerAI_Input.think(ComputerAI_Input.java:46)
   at forge.ComputerAI_Input.showMessage(ComputerAI_Input.java:31)
   at forge.GuiInput.setInput(GuiInput.java:27)
   at forge.GuiInput.update(GuiInput.java:21)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:9)
   at forge.Phase.nextPhase(Phase.java:377)
   at forge.GuiDisplay4$25.actionPerformed(GuiDisplay4.java:740)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$000(Unknown Source)
   at java.awt.EventQueue$1.run(Unknown Source)
   at java.awt.EventQueue$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$2.run(Unknown Source)
   at java.awt.EventQueue$2.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Chris H. » 27 Feb 2011, 01:02

friarsol wrote:One thing is clear: we do need to convert the Scry keyword to the Scry AF/DB. I'm not sure how long it's been around, but it looks like Augury Owl is the only one that uses it. So should be extremely painless.
`
I converted Augury Owl's scry ability to AF + trigger. I retested the combination and Augury Owl's scry ability now works correctly. It looks like the other cards with Scry were converted some time ago.

The old Scry keyword code is located in several different classes, and this code can be deleted at some point in time. I did not touch the code myself. :mrgreen:
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: SVN Bug Reports

Postby slapshot5 » 27 Feb 2011, 05:19

r6863

There is some code in ComputerUtil_Attack2.getAttackers() that I think tries to predict attackers next turn. It includes this code:
Code: Select all
if(pCard.isTapped() && PhaseUtil.canUntap(pCard)){
                   wasTapped = true;
                   pCard.untap();
               }
Not good, as this trips the "Untaps" trigger and causes a StackOverflowException.

You can see it with a hypothetical Hollowsage that I was testing:
Code: Select all
Name:Hollowsage
ManaCost:3 B
Types:Creature Merfolk Wizard
Text:no text
PT:2/2
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDiscard | Optional$ True | TriggerDescription$ Whenever CARDNAME becomes untapped, you may have target player discard a card.
SVar:TrigDiscard:AB$Discard | Cost$ 0 | ValidTgts$ Player | TgtPrompt$ Select target player | NumCards$ 1 | Mode$ TgtChoose
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/hollowsage.jpg
End
-slapshot5
slapshot5
Programmer
 
Posts: 1391
Joined: 03 Jan 2010, 17:47
Location: Mac OS X
Has thanked: 25 times
Been thanked: 68 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 8 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 8 users online :: 0 registered, 0 hidden and 8 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 8 guests

Login Form