Page 7 of 32

Re: Developing Bugs

PostPosted: 27 Jan 2012, 15:57
by moomarc
I was doing some testing with Hinterland Hermit//Hinterland Scourge and it seems that if more than one creature with "CARDNAME must be blocked this turn if able." keyword attacks in the same attack, not all of them will be assigned at least one blocker. Instead it seems that the AI will first try gang up on one of them to kill it. In my test four transformed Hinterlanders attacked into two 1/1 token test subjects. Both blocked the first attacker, whereas I would think that the blockers should first be assigned to an attacker with the keyword, then apply further blocking logics to decide how to handle things.

Re: Developing Bugs

PostPosted: 01 Feb 2012, 07:37
by moomarc
Is random foiling still working for anyone? I tried it out for the first time in a while to see if the duplicate foils across cards of the same name was still happening. But it seems that nothing is being foiled, ever. In the eclipse console I'm getting errors along the lines of
Code: Select all
INFO: Symbol not recognized "foil09" in string: foil09

Re: Developing Bugs

PostPosted: 01 Feb 2012, 08:29
by Doublestrike
@moomarc - fixed.

Re: Developing Bugs

PostPosted: 08 Jun 2012, 12:48
by moomarc
Sloth, your recent change to GainControl AF broke the 'until EOT' duration. Creatures don't return to the original controller at end of turn, but they do get summoning sickness as though they have a new controller. Easy test to check both sides of that Memory Plunder/Mark of Mutiny bug is the following deck for each player: 1x Mark of Mutiny, 1x Memory Plunder, 1x Ornithopter, 4x Mox Ruby

Edit: Just tested and it affects all LoseControl$ EOT spells (not abilities)

Re: Developing Bugs

PostPosted: 08 Jun 2012, 14:52
by Sloth
moomarc wrote:Sloth, your recent change to GainControl AF broke the 'until EOT' duration. Creatures don't return to the original controller at end of turn, but they do get summoning sickness as though they have a new controller. Easy test to check both sides of that Memory Plunder/Mark of Mutiny bug is the following deck for each player: 1x Mark of Mutiny, 1x Memory Plunder, 1x Ornithopter, 4x Mox Ruby

Edit: Just tested and it affects all LoseControl$ EOT spells (not abilities)
Fixed! Thanks marc. [AF GainControl needs to be cleaned up one day, the whole Controller being a GameEntity looks fishy]

Re: Developing Bugs

PostPosted: 18 Jun 2012, 20:39
by Hellfish
I think Snow mana may have been overlooked in the recent mana rewrite. Trying to pay Phyrexian Ironfoot's ability, for instance, results in a cold(hah!) crash:
Code: Select all

java.lang.RuntimeException: Not found: mana shard with profile = 0
   at forge.card.mana.ManaCostShard.valueOf(ManaCostShard.java:288)
   at forge.card.mana.ManaCostParser.next(ManaCostParser.java:96)
   at forge.card.mana.ManaCostParser.next(ManaCostParser.java:1)
   at forge.card.CardManaCost.<init>(CardManaCost.java:71)
   at forge.card.mana.ManaCost.<init>(ManaCost.java:62)
   at forge.card.cost.Cost.changeCost(Cost.java:390)
   at forge.card.cost.CostPayment.changeCost(CostPayment.java:320)
   at forge.GameAction.playSpellAbility(GameAction.java:2508)
   at forge.GameAction.playCard(GameAction.java:1704)
   at forge.control.input.InputPassPriority.selectCard(InputPassPriority.java:88)
   at forge.gui.match.nonsingleton.CField.cardclickAction(CField.java:480)
   at forge.gui.match.nonsingleton.CField.access$7(CField.java:431)
   at forge.gui.match.nonsingleton.CField$8.mousePressed(CField.java:101)
   at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
   at java.awt.Component.processMouseEvent(Component.java:6501)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
   at java.awt.Component.processEvent(Component.java:6269)
   at java.awt.Container.processEvent(Container.java:2229)
   at java.awt.Component.dispatchEventImpl(Component.java:4860)
   at java.awt.Container.dispatchEventImpl(Container.java:2287)
   at java.awt.Component.dispatchEvent(Component.java:4686)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
   at java.awt.Container.dispatchEventImpl(Container.java:2273)
   at java.awt.Window.dispatchEventImpl(Window.java:2713)
   at java.awt.Component.dispatchEvent(Component.java:4686)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
   at java.awt.EventQueue$4.run(EventQueue.java:680)
   at java.awt.EventQueue$4.run(EventQueue.java:678)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Re: Developing Bugs

PostPosted: 19 Jun 2012, 19:26
by moomarc
Hellfish wrote:I think Snow mana may have been overlooked in the recent mana rewrite. Trying to pay Phyrexian Ironfoot's ability, for instance, results in a cold(hah!) crash:
Code: Select all

java.lang.RuntimeException: Not found: mana shard with profile = 0
   at forge.card.mana.ManaCostShard.valueOf(ManaCostShard.java:288)
   at forge.card.mana.ManaCostParser.next(ManaCostParser.java:96)
   at forge.card.mana.ManaCostParser.next(ManaCostParser.java:1)
   at forge.card.CardManaCost.<init>(CardManaCost.java:71)
   at forge.card.mana.ManaCost.<init>(ManaCost.java:62)
   at forge.card.cost.Cost.changeCost(Cost.java:390)
   at forge.card.cost.CostPayment.changeCost(CostPayment.java:320)
   at forge.GameAction.playSpellAbility(GameAction.java:2508)
   at forge.GameAction.playCard(GameAction.java:1704)
   at forge.control.input.InputPassPriority.selectCard(InputPassPriority.java:88)
   at forge.gui.match.nonsingleton.CField.cardclickAction(CField.java:480)
   at forge.gui.match.nonsingleton.CField.access$7(CField.java:431)
   at forge.gui.match.nonsingleton.CField$8.mousePressed(CField.java:101)
   at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
   at java.awt.Component.processMouseEvent(Component.java:6501)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
   at java.awt.Component.processEvent(Component.java:6269)
   at java.awt.Container.processEvent(Container.java:2229)
   at java.awt.Component.dispatchEventImpl(Component.java:4860)
   at java.awt.Container.dispatchEventImpl(Container.java:2287)
   at java.awt.Component.dispatchEvent(Component.java:4686)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
   at java.awt.Container.dispatchEventImpl(Container.java:2273)
   at java.awt.Window.dispatchEventImpl(Window.java:2713)
   at java.awt.Component.dispatchEvent(Component.java:4686)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
   at java.awt.EventQueue$4.run(EventQueue.java:680)
   at java.awt.EventQueue$4.run(EventQueue.java:678)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Did you have 'Play unlimited lands' mode enabled in Dev mode? I know I had issues with that and snow mana in the past.

Re: Developing Bugs

PostPosted: 19 Jun 2012, 20:08
by Hellfish
Tried with and without Play Unlimited Lands, with and without Dev mode and without fail that same crash appears. Either when I try to activate the ability (I don't get as far as paying, I worded the other post poorly) or when the AI evaluates the ability.

Re: Developing Bugs

PostPosted: 20 Jul 2012, 19:26
by mark
There is a bug with Blood Artist:
play it 4 times and play 4 other creatures (e.g. 2x Dragon Fodder) and then destroy them with Akroma's Vengeance: the number of times, Blood Artist triggers varies always, I tested it three times by adding the cards in developer mode and the result was 10, 14, 22 times.

With a fixed deck like
Code: Select all
[metadata]
Name=AA
[main]
4 Blood Artist
2 Dragon Fodder
1 Akroma's Vengeance
[sideboard]
and generating mana it was always 10 times in 4 tries.

Edit: in another test with different play order it triggered 22 times with this deck.

In another test, the AI unsummoned one token, so with 4 Artists and 3 Tokens it also triggered 22 times...

It should be triggered 20 times (death of 4 Artists + 4 Artists * 4 Tokens), if I'm not wrong.

Re: Developing Bugs

PostPosted: 21 Jul 2012, 20:39
by Sloth
Sol, I noticed a bug after revision 16280:

When the AI counters one of my spells with Counterspell, i don't get priority, it just resolves.

Re: Developing Bugs

PostPosted: 21 Jul 2012, 21:39
by friarsol
Sloth wrote:Sol, I noticed a bug after revision 16280:

When the AI counters one of my spells with Counterspell, i don't get priority, it just resolves.
Alright, I've reverted for now. I can't tell where Priority is getting hosed, but it seems like it must be in MagicStack.push(). I don't have time to look into it tonight.

Edit: As usual an updateObservers() call is screwing with priority. It looks like I can put the priority setting inside the push, just after the stack addition, but before the updateObservers to get the functionality I want. I'll try to do some more testing with this tomorrow to confirm it works in a few more cases. But the City of Brass and Counterspell cases seem to both be functional using that method.

Re: Developing Bugs

PostPosted: 22 Jul 2012, 10:23
by mark
This looks like the Blood Artist bug posted before: Whenever creatures die, triggering this does not work correctly.

I had Unruly Mob with 1 counter and Village Cannibals without counters on the battlefield. Then I attacked with Thraben Sentry (a 2/2 Human Soldier with Vigilance, transforms to Thraben Militia, a 5/4 Human Soldier with Trample) and AI blocked it with a 2/2 Young Wolf, so both creatures died. This did not trigger the "whenever another (human) creature dies, put a counter on foo".

Re: Developing Bugs

PostPosted: 22 Jul 2012, 13:26
by friarsol
mark wrote:This looks like the Blood Artist bug posted before: Whenever creatures die, triggering this does not work correctly.

I had Unruly Mob with 1 counter and Village Cannibals without counters on the battlefield. Then I attacked with Thraben Sentry (a 2/2 Human Soldier with Vigilance, transforms to Thraben Militia, a 5/4 Human Soldier with Trample) and AI blocked it with a 2/2 Young Wolf, so both creatures died. This did not trigger the "whenever another (human) creature dies, put a counter on foo".
I just tested this and it seems like the front face of double faced cards aren't triggering properly, but the back face and single faced cards are. Not sure if this is an LKI thing or something else.

Re: Developing Bugs

PostPosted: 01 Aug 2012, 06:44
by mark
I had Unruly Mob and Doomed Traveler on the battlefield, attacked with Doomed Traveler, which caused him to die and be replaced by a 1/1 Spirit -> no counters on Unruly Mob.

edit: Later, I had Village Cannibals out and Unruly Mob got destroyed by Doomblade -> no counter on Village Cannibals.

edit2: I Sacrificed Doomed Traveler for Falkenrath Torturer -> no counter on Falkenrath Torturer

Re: Developing Bugs

PostPosted: 01 Aug 2012, 10:05
by Milod
this is the second time it crashes while entering the deck editor the frist time i reinstalled it worked again but after some dueling i come back to deck editor it happend again using version from 31 july

This is a Crash Report. An error has occurred. Please save this message to a file.
Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:
http://tinyurl.com/3zzrnyb
Reporting bugs in Forge is very important. We thank you for your time.

3


Version:
Forge version 1.2.11-SNAPSHOT

OS: Windows 7 Version: 6.1 Architecture: x86

Java Version: 1.7.0_04 Vendor: Oracle Corporation

Detailed error trace:
java.lang.ArrayIndexOutOfBoundsException: 3
at forge.gui.deckeditor.tables.TableModel.setup(TableModel.java:93)
at forge.gui.deckeditor.tables.TableView.setup(TableView.java:110)
at forge.gui.deckeditor.controllers.CEditorConstructed.init(CEditorConstructed.java:145)
at forge.gui.deckeditor.CDeckEditorUI.updateController(CDeckEditorUI.java:121)
at forge.gui.deckeditor.CDeckEditorUI.setCurrentEditorController(CDeckEditorUI.java:85)
at forge.gui.home.utilities.CSubmenuDeckEditor.showDeckEditor(CSubmenuDeckEditor.java:36)
at forge.gui.home.utilities.CSubmenuDeckEditor.access$000(CSubmenuDeckEditor.java:15)
at forge.gui.home.utilities.CSubmenuDeckEditor$1.execute(CSubmenuDeckEditor.java:47)
at forge.gui.home.VMainMenu$2$1.run(VMainMenu.java:219)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$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)