It is currently 23 Aug 2025, 15:53
   
Text Size

Forge Beta: 11-05-2015 ver 1.5.47

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

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby Sciamancer » 26 Dec 2015, 05:06

Hey, new user here! I'm loving Forge, especially the AI. Although it's limited, it's pretty good for testing my decks against each other.

I encountered an odd apparent bug with Land Tax, though. I'm playing EDH on the most recent Forge build, with two AI. The AI has a Land Tax and somehow triggers it every upkeep, even though it has a lot more land in play than both me and the other AI.

I was going to link to some screenshots, but unfortunately new users apparently aren't allowed to link off-site.

I haven't done any further testing, but as you can see it has allowed the AI to amass many lands. Assuming that this isn't just a bug with Land Tax alone, the only noteworthy cards I can think of are Urborg, Tomb of Yawgmoth and Exploration, which since they affect all lands in play and land plays (respectively) might mess up Land Tax's code somehow.

I had another game with not a bug, but a slight kink, I suppose. I also had one game where an AI played Darkest Hour along with Teysa, Orzhov Scion. Then another AI played an Elesh Norn, which created an infinite loop, killing some white-turned-black tokens, to generate some white tokens with Teysa, which turn black and die, creating more tokens, and so on. Unfortunately there was no Blood Artist, Butcher of Malakir, etc. to break the resulting cycle, so it just kept going. I believe that by the rules this loop would result in a draw. Such a situation might be too difficult to detect with code, I don't know. I ended up just calling it a "draw" for myself and relaunching Forge.
Sciamancer
 
Posts: 1
Joined: 26 Dec 2015, 04:52
Has thanked: 0 time
Been thanked: 0 time

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby friarsol » 26 Dec 2015, 21:45

Sciamancer wrote:Hey, new user here! I'm loving Forge, especially the AI. Although it's limited, it's pretty good for testing my decks against each other.

I encountered an odd apparent bug with Land Tax, though. I'm playing EDH on the most recent Forge build, with two AI. The AI has a Land Tax and somehow triggers it every upkeep, even though it has a lot more land in play than both me and the other AI.

I was going to link to some screenshots, but unfortunately new users apparently aren't allowed to link off-site.

I haven't done any further testing, but as you can see it has allowed the AI to amass many lands. Assuming that this isn't just a bug with Land Tax alone, the only noteworthy cards I can think of are Urborg, Tomb of Yawgmoth and Exploration, which since they affect all lands in play and land plays (respectively) might mess up Land Tax's code somehow.

I had another game with not a bug, but a slight kink, I suppose. I also had one game where an AI played Darkest Hour along with Teysa, Orzhov Scion. Then another AI played an Elesh Norn, which created an infinite loop, killing some white-turned-black tokens, to generate some white tokens with Teysa, which turn black and die, creating more tokens, and so on. Unfortunately there was no Blood Artist, Butcher of Malakir, etc. to break the resulting cycle, so it just kept going. I believe that by the rules this loop would result in a draw. Such a situation might be too difficult to detect with code, I don't know. I ended up just calling it a "draw" for myself and relaunching Forge.
Looks like Land Tax was never converted for appropriate handling with Multiplayer. The way the script is written, it just checks for all lands controlled by opposing players, not the most amount of lands controlled by a single opponent. So if I have 5 lands, and each of my opponents have 4 it compares 5 to 8 instead of 5 to 4.

Right, Forge right now unfortunately doesn't detect loops. I've thought about doing it in a few different ways, but it's a bit tough to do. Probably the "simplest" way to do it is to try to keep a little bit of a track, and then prompt the user with some type of "might be stuck in a loop, if that's true the game will end in a draw" prompt. But detecting this type of possibility still isn't the easiest thing.

As for new users posting on the Slightly Magic forums, I believe that restriction is lifted after your 5th post (or maybe for the 5th post?). Anyway, welcome aboard.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby MIC132 » 31 Dec 2015, 13:45

Is there a way to delete a deck in-game? Or do I have to go into the folder and delete it manually.
I can't find any way to do this in-game.

EDIT: Nevermind, apparently the "edit/delete" column in my deck list was hidden by default.
EDIT2: Hmm, but still no way to delete Commander decks that I can see.
Last edited by MIC132 on 01 Jan 2016, 13:02, edited 2 times in total.
MIC132
 
Posts: 49
Joined: 17 Sep 2013, 15:18
Has thanked: 0 time
Been thanked: 2 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby schnautzr » 31 Dec 2015, 23:13

Here's a deep question that arose from what I originally thought to be a glitch during play today...

Suppose Player 1's Wall of Nets blocks Player 2's It That Betrays. Wall of Nets is sacrificed before combat damage is assigned.

Here is the resulting sequence of events (as demonstrated by Forge):

*Wall of Nets leaves the battlefield.
*All creatures exiled by Wall of Nets return to the battlefield.
*Wall of Nets returns under Player 2's control.
*Damage is assigned.
*It That Betrays is exiled and remembered by Wall of Nets.

The only ruling I see for Wall of Nets is that the exile only takes place if Wall of Nets is in play at EOC... but should its effect fizzle when it is sacrificed?
User avatar
schnautzr
 
Posts: 106
Joined: 23 Aug 2012, 01:13
Location: UTC -6/-5
Has thanked: 27 times
Been thanked: 7 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby friarsol » 01 Jan 2016, 00:05

schnautzr wrote:Here's a deep question that arose from what I originally thought to be a glitch during play today...

Suppose Player 1's Wall of Nets blocks Player 2's It That Betrays. Wall of Nets is sacrificed before combat damage is assigned.

Here is the resulting sequence of events (as demonstrated by Forge):

*Wall of Nets leaves the battlefield.
*All creatures exiled by Wall of Nets return to the battlefield.
*Wall of Nets returns under Player 2's control.
*Damage is assigned.
*It That Betrays is exiled and remembered by Wall of Nets.

The only ruling I see for Wall of Nets is that the exile only takes place if Wall of Nets is in play at EOC... but should its effect fizzle when it is sacrificed?
The issue is that the returning Wall of Nets is acting like the same object as the one that was sacrificed a few steps prior but it is not. When it returns the Wall is no longer blocking the Eldrazi, and it should neither receive combat damage or trigger it's EOC effect. Even if somehow all that could be true, since the Wall is controlled by the attacker it is not a legal blocker.

Basically the problem boils down to the returning Wall of Nets not initializing itself as a new game object appropriately.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby schnautzr » 01 Jan 2016, 05:37

friarsol wrote:
schnautzr wrote:...

*Damage is assigned.
*It That Betrays is exiled and remembered by Wall of Nets.
...When it returns the Wall is no longer blocking the Eldrazi, and it should [not] receive combat damage...
To clarify, damage was redirected to Player 1, not to Wall of Nets. The only "glitch" here if any was the EOC effect.
User avatar
schnautzr
 
Posts: 106
Joined: 23 Aug 2012, 01:13
Location: UTC -6/-5
Has thanked: 27 times
Been thanked: 7 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby gos » 02 Jan 2016, 23:13

AI tapped 5 mana and cast Molten Disaster. The info on the stack says "3 damage" and it dealt 3 damage, which seems to indicate it wasn't kicked, but I can't cast any of instants I have in hand (Counterspell, Recoil, Fact or Fiction), which seens to indicate it has split second.
gos
 
Posts: 4369
Joined: 03 Mar 2011, 15:21
Location: Reykjavík, Iceland
Has thanked: 231 times
Been thanked: 232 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby Nekoatl » 03 Jan 2016, 01:52

Are you certain a 6th mana wasn't tapped from some nonland source like Birds of Paradise, for example?
Nekoatl
 
Posts: 196
Joined: 22 Aug 2013, 20:13
Has thanked: 21 times
Been thanked: 8 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby gos » 03 Jan 2016, 08:30

Nekoatl wrote:Are you certain a 6th mana wasn't tapped from some nonland source like Birds of Paradise, for example?
There were no mana creatures, no artifacts, and nothing in the graveyard that could explain the 6th mana.
gos
 
Posts: 4369
Joined: 03 Mar 2011, 15:21
Location: Reykjavík, Iceland
Has thanked: 231 times
Been thanked: 232 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby Thrun » 03 Jan 2016, 23:54

Prismatic Lace

This card costs only U , but in Forge you must pay 1U.
Thrun
 
Posts: 23
Joined: 26 Jul 2015, 21:54
Has thanked: 0 time
Been thanked: 0 time

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby Thrun » 03 Jan 2016, 23:56

gos wrote:
Nekoatl wrote:Are you certain a 6th mana wasn't tapped from some nonland source like Birds of Paradise, for example?
There were no mana creatures, no artifacts, and nothing in the graveyard that could explain the 6th mana.
Simian Spirit Guide or Elvish Spirit Guide? They are easy to overlook.
Thrun
 
Posts: 23
Joined: 26 Jul 2015, 21:54
Has thanked: 0 time
Been thanked: 0 time

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby Thrun » 04 Jan 2016, 01:42

Still no monk-tokens for Monastery Mentor out there? :(
Thrun
 
Posts: 23
Joined: 26 Jul 2015, 21:54
Has thanked: 0 time
Been thanked: 0 time

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby gos » 04 Jan 2016, 10:30

Thrun wrote:
gos wrote:
Nekoatl wrote:Are you certain a 6th mana wasn't tapped from some nonland source like Birds of Paradise, for example?
There were no mana creatures, no artifacts, and nothing in the graveyard that could explain the 6th mana.
Simian Spirit Guide or Elvish Spirit Guide? They are easy to overlook.
:) I can't rule them out after all this time. I'll look into trying to reproduce this.
gos
 
Posts: 4369
Joined: 03 Mar 2011, 15:21
Location: Reykjavík, Iceland
Has thanked: 231 times
Been thanked: 232 times

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby Bordergeist » 04 Jan 2016, 11:31

I don't know if this has previously been reported, but suspend does not play correctly. Twice I've had the AI suspend spells (specificaly, Phthisis and Hypergenesis), and, when the last counter was removed, the computer chose not to cast them. This is not actually allowed--so, for instance, if the only creatures on the battlefield when Phthisis resolves are the AI's, it is required to target one and take the pain. Similarly, even if the AI doesn't want to hHypergenesis (presumably from having no permanents in hand), it must still do so and give all other players the chance to drop permanents into play.
Bordergeist
 
Posts: 11
Joined: 02 Oct 2015, 00:01
Has thanked: 0 time
Been thanked: 0 time

Re: Forge Beta: 11-05-2015 ver 1.5.47

Postby indicatie » 05 Jan 2016, 15:37

Description:

Was playing a Eighth Edition Tournament in my Quest.
During a match between AI players I accidentaly resized one of windows (the card picture window).
Tried to resize it, but Forge crashed. Now, when trying to continue my tournament, I get an error and can't continue... :(

NullPointerException | Open
Code: Select all
Forge Version:    1.5.47-r-1
Operating System: Windows 8.1 6.3 x86
Java Version:     1.8.0_60 Oracle Corporation

java.lang.NullPointerException
   at forge.screens.match.VMatchUI.populate(VMatchUI.java:119)
   at forge.screens.match.CMatchUI.updatePlayerControl(CMatchUI.java:620)
   at forge.screens.match.CMatchUI.initialize(CMatchUI.java:486)
   at forge.control.FControl.setCurrentScreen(FControl.java:323)
   at forge.control.FControl.setCurrentScreen(FControl.java:287)
   at forge.screens.match.CMatchUI.openView(CMatchUI.java:840)
   at forge.match.HostedMatch.startGame(HostedMatch.java:183)
   at forge.match.HostedMatch.startMatch(HostedMatch.java:115)
   at forge.match.HostedMatch.startMatch(HostedMatch.java:83)
   at forge.quest.QuestDraftUtils.update(QuestDraftUtils.java:237)
   at forge.quest.QuestDraftUtils.startNextMatch(QuestDraftUtils.java:168)
   at forge.screens.home.quest.CSubmenuQuestDraft.startNextMatch(CSubmenuQuestDraft.java:589)
   at forge.screens.home.quest.CSubmenuQuestDraft.access$000(CSubmenuQuestDraft.java:52)
   at forge.screens.home.quest.CSubmenuQuestDraft$7.actionPerformed(CSubmenuQuestDraft.java:273)
   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$500(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$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.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)
Don't mistake lack of talent for genius.
User avatar
indicatie
 
Posts: 153
Joined: 06 Feb 2009, 15:15
Has thanked: 13 times
Been thanked: 5 times

PreviousNext

Return to Forge

Who is online

Users browsing this forum: No registered users and 48 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 48 users online :: 0 registered, 0 hidden and 48 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 48 guests

Login Form