Gatecrash Spoiler Season
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins
Re: Gatecrash Spoiler Season
by swordshine » 31 Dec 2012, 09:21
Illusionist's Bracers is also difficult because its ability is similar to Rings of Brighthearth
.
.- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Gatecrash Spoiler Season
by friarsol » 31 Dec 2012, 14:41
I'm not sure how difficult this really is. We just need to expand CopySpell to also allow copying of abilities [Probably changing the name to CopySpellAbility?] and add a flag in "AbilityCast" to check if the Ability is a mana ability, which should be pretty straightforward.swordshine wrote:Illusionist's Bracers is also difficult because its ability is similar to Rings of Brighthearth.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Gatecrash Spoiler Season
by Hellfish » 01 Jan 2013, 11:05
I only just realized, battalion is also word for word from GDS2: Shawn Main's Assault mechanic.Will we see a Discharge-like mechanic in Dragon's Maze?Maybe even blight counters?
EDIT: I probably sound like a grumpy old bastard, and I am, but I don't necessarily think these observations are a bad thing.
EDIT: I probably sound like a grumpy old bastard, and I am, but I don't necessarily think these observations are a bad thing.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Gatecrash Spoiler Season
by Hellfish » 02 Jan 2013, 07:17
It is done. No changes needed to AbilityCast, it doesn't trigger on mana abilities anyway.friarsol wrote:I'm not sure how difficult this really is. We just need to expand CopySpell to also allow copying of abilities [Probably changing the name to CopySpellAbility?] and add a flag in "AbilityCast" to check if the Ability is a mana ability, which should be pretty straightforward.swordshine wrote:Illusionist's Bracers is also difficult because its ability is similar to Rings of Brighthearth.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Gatecrash Spoiler Season
by swordshine » 02 Jan 2013, 08:30
Thanks Hellfish. I found a bug when testing Rings of Brighthearth. The mana ability of Metalworker would trigger the copyability AF, you may pay 2 to copy it but nothing happened when it resolves.Hellfish wrote:It is done. No changes needed to AbilityCast, it doesn't trigger on mana abilities anyway.
This might be a long-existed bug. I think Forge did not recognise Metalworker's activated ability as a mana ability. For example, Pithing Needle can impede Metalworker's ability.
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Gatecrash Spoiler Season
by Hellfish » 02 Jan 2013, 09:13
The problem is that only looks to the root SA when determiningmana ability-ness (
)while the mana portion of Metalworker's ability is a subability. I think I know a solution, I'll see if I can get a computer after work.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Gatecrash Spoiler Season
by swordshine » 02 Jan 2013, 10:16
One more question: I think the source of the copied activated ability is the original object whose ability was activated. This might be different from copyspell effect.
Example:
When I used the first or the second ability of Karn Liberated, Karn did not remember the exiled card by the copied ability. After I used the ultimate, the copied ones did not put to the battlefield.
The copied ability does not have the correct source now.706.10b A copy of an ability has the same source as the original ability. If the ability refers to its source by name, the copy refers to that same object and not to any other object with the same name. The copy is considered to be the same ability by effects that count how many times that ability has resolved during the turn.
Example:
When I used the first or the second ability of Karn Liberated, Karn did not remember the exiled card by the copied ability. After I used the ultimate, the copied ones did not put to the battlefield.
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Gatecrash Spoiler Season
by Hellfish » 04 Jan 2013, 07:04
I changed the source for copied abilities to the same card it was copied from. I also changed SpellAbility.isManaAbility() to also look at subabilities.
However, I've got to fix Rings of Brighthearth triggering again on the copied ability before I commitWhy is the SpellCopied flag on the source card and not on the SpellAbility?and Metalworker not adding the mana for some reason..Fixed this, hopefully it's kosher with the rest of our ginormous card base...
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Gatecrash Spoiler Season
by ArsenalNut » 04 Jan 2013, 14:49
There are a couple of issues with this change.Hellfish wrote:I also changed SpellAbility.isManaAbility() to also look at subabilities.
First just because part of an ability produces mana doesn't mean the ability is a mana ability.
The first ability of Deathrite Shaman is not a mana ability because the it targets the card to exile.605.1a An activated ability is a mana ability if it meets three criteria: it doesn’t have a target, it
could put mana into a player’s mana pool when it resolves, and it’s not a loyalty ability. (See
rule 606, “Loyalty Abilities.”)
The second problem is that trying to activate something like Metalworker to pay for a cost causes a crash.
- activate Mana Ability crash | Open
- java.lang.NullPointerException
at forge.control.input.InputPayManaCostUtil.activateManaAbility(InputPayManaCostUtil.java:92)
at forge.control.input.InputPayManaCost2.selectCard(InputPayManaCost2.java:51)
at forge.gui.match.nonsingleton.CField.cardclickAction(CField.java:474)
at forge.gui.match.nonsingleton.CField.access$7(CField.java:418)
at forge.gui.match.nonsingleton.CField$8.mousePressed(CField.java:101)
at java.awt.AWTEventMulticaster.mousePressed(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)
The crash is caused when the root ability is not a mana producing ability.
So many cards, so little time
-

ArsenalNut - Posts: 512
- Joined: 08 Jul 2011, 03:49
- Has thanked: 27 times
- Been thanked: 121 times
Re: Gatecrash Spoiler Season
by Hellfish » 04 Jan 2013, 15:09
Thanks for testing ! I'll correct point 1 ASAP and will look at point 2 as well.Will keep you posted! 
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Gatecrash Spoiler Season
by moomarc » 04 Jan 2013, 18:44
Just checked in the Extort keyword. Have fun!
-Marc
-

moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Gatecrash Spoiler Season
by Sloth » 04 Jan 2013, 21:36
Why is the branch a full copy of the trunk?Hellfish wrote:Branch created, go nuts.
For the last expansions we only branched the cardsfolder,
EDIT: Nevermind. I noticed that i can just switch the cardsfolder to "/branches/Gatecrash/res/cardsfolder".
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Gatecrash Spoiler Season
by Hellfish » 04 Jan 2013, 21:57
A wizard did it. A very clumsy wizard.
Sorry about that, cant fix from my phone. Good to hear it can be worked with at least.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Gatecrash Spoiler Season
by Sloth » 04 Jan 2013, 22:00
There's no need to change this. We can all just avoid commiting changes outside the cardsfolder.Hellfish wrote:A wizard did it. A very clumsy wizard.Sorry about that, cant fix from my phone. Good to hear it can be worked with at least.
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Gatecrash Spoiler Season
by friarsol » 04 Jan 2013, 22:18
Since it happens 4 times a year, maybe we should write up a small bit on the Wiki for Spoiler Season procedure?Sloth wrote:There's no need to change this. We can all just avoid commiting changes outside the cardsfolder.Hellfish wrote:A wizard did it. A very clumsy wizard.Sorry about that, cant fix from my phone. Good to hear it can be worked with at least.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Who is online
Users browsing this forum: No registered users and 17 guests