Forge Beta: 05-17-2013 ver 1.3.16
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge Beta: 05-17-2013 ver 1.3.16
by texas » 24 May 2013, 15:26
@max
because I simply did not know. thank you.
because I simply did not know. thank you.
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Phoenix » 24 May 2013, 15:28
This bug you got also within the other Legandary Eldrazi cards Ulamog and Endrakul.Doerk wrote:Appeared in this version for the first time: When casting Kozilek, Butcher of Truth its effect "draw four cards" is triggered twice (see screenshot). This bug is reproducable.
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Max mtg » 24 May 2013, 16:03
Ok, you are welcome.texas wrote:@max
because I simply did not know. thank you.
Just pay attention to the upper lines of stack trace - in both cases they read
- Code: Select all
java.lang.NullPointerException
at forge.card.MagicColor.fromName(MagicColor.java:23)
at forge.card.TriggerReplacementBase.meetsCommonRequirements(TriggerReplacementBase.java:304)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:308)
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Forge Beta: 05-17-2013 ver 1.3.16
by SpiderBrigade » 24 May 2013, 16:59
Rotlung Reanimator with Conspiracy and Thraben Doomsayer. The 1/1 Human tokens from Doomsayer show as Clerics (from Conspiracy) and will trigger the Reanimator when they are sacced for Starlit Sanctum, producing 2/2 Zombies (now clerics). However if they are sacced to Ashnod's Altar and in some other cases (sporadically from combat damage etc) the Reanimator does not trigger.
- SpiderBrigade
- Posts: 23
- Joined: 21 Nov 2012, 19:31
- Has thanked: 1 time
- Been thanked: 3 times
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Sawteeth » 24 May 2013, 21:56
Description: AI, using Isperia deck, played a Hallowed Fountain untapped to and empty field on turn 1.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.3.16-r21506
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_21 Oracle Corporation
java.lang.NullPointerException
at forge.card.MagicColor.fromName(MagicColor.java:23)
at forge.card.TriggerReplacementBase.meetsCommonRequirements(TriggerReplacementBase.java:304)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:308)
at forge.card.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:315)
at forge.card.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:252)
at forge.card.trigger.TriggerHandler.runTrigger(TriggerHandler.java:177)
at forge.game.GameAction.changeZone(GameAction.java:230)
at forge.game.GameAction.moveTo(GameAction.java:370)
at forge.game.GameAction.moveTo(GameAction.java:351)
at forge.game.GameAction.moveToPlay(GameAction.java:568)
at forge.card.ability.effects.ETBReplacementEffect.resolve(ETBReplacementEffect.java:14)
at forge.card.spellability.AbilitySub.resolve(AbilitySub.java:130)
at forge.card.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1055)
at forge.card.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1048)
at forge.card.ability.AbilityUtils.handleUnlessCost(AbilityUtils.java:1125)
at forge.card.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1057)
at forge.card.ability.AbilityUtils.resolve(AbilityUtils.java:1034)
at forge.game.ai.ComputerUtil.playNoStack(ComputerUtil.java:315)
at forge.card.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:244)
at forge.card.replacement.ReplacementHandler.run(ReplacementHandler.java:150)
at forge.card.replacement.ReplacementHandler.run(ReplacementHandler.java:70)
at forge.game.GameAction.changeZone(GameAction.java:180)
at forge.game.GameAction.moveTo(GameAction.java:370)
at forge.game.GameAction.moveTo(GameAction.java:351)
at forge.game.player.Player.playLand(Player.java:1780)
at forge.game.ai.AiController.playLands(AiController.java:866)
at forge.game.ai.AiController.onPriorityRecieved(AiController.java:823)
at forge.game.ai.AiInputCommon$1.run(AiInputCommon.java:74)
at forge.FThreads$1.run(FThreads.java:115)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- Sawteeth
- Posts: 13
- Joined: 14 Apr 2013, 23:20
- Has thanked: 0 time
- Been thanked: 0 time
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Asellia » 25 May 2013, 06:05
Uhm, to Max mtg, and so on; I figured out uh.. the actual cause of the 'bug' I mentioned before (Which I posted a save to, ect).
You mentioned in my old thread (I think it was you anywho), that the quests were c hanged to need 20 wins instead of 25, to unlock challenges.
Well, the quest map, which lowered the "shown" needed wins left (So it said I had challengers), was not the actual variable it seemed. So, basically, I need to get 20 wins, even with the map, to unlock the opponents.
Once I got 20, the opponents appeared, even though it said i had enough at 18 due to quest map. So I think its just, the quest map doesn't work.
Edit: as note, this is in this thread's version, NOT a daily.
You mentioned in my old thread (I think it was you anywho), that the quests were c hanged to need 20 wins instead of 25, to unlock challenges.
Well, the quest map, which lowered the "shown" needed wins left (So it said I had challengers), was not the actual variable it seemed. So, basically, I need to get 20 wins, even with the map, to unlock the opponents.
Once I got 20, the opponents appeared, even though it said i had enough at 18 due to quest map. So I think its just, the quest map doesn't work.
Edit: as note, this is in this thread's version, NOT a daily.
- Asellia
- Posts: 26
- Joined: 30 Apr 2010, 19:02
- Has thanked: 0 time
- Been thanked: 0 time
Re: Forge Beta: 05-17-2013 ver 1.3.16
by NoctisIncendia » 25 May 2013, 06:20
I attack with Gemini Engine and Wayfaring Temple, both go unblocked, as well as the twin token. I populate the twin token with the temple's trigger. At end of combat, both twin tokens trigger to be sacrificed when only the one created by gemini should, and when the populated token's sac trigger tries to resolve, Forge crashes.
- NoctisIncendia
- Posts: 27
- Joined: 08 Feb 2012, 11:14
- Has thanked: 0 time
- Been thanked: 0 time
Re: Forge Beta: 05-17-2013 ver 1.3.16
by newcomer » 25 May 2013, 12:05
Does the player need to click somewhere to activate Oracle of Mul Daya? Primitive Etchings was on the field as well.
Is there any way to remove the default card image? I recall 1.3.4 having a blank image.
Is there any way to remove the default card image? I recall 1.3.4 having a blank image.
Last edited by Chris H. on 25 May 2013, 12:51, edited 1 time in total.
Reason: mouse-over
Reason: mouse-over
Re: Forge Beta: 05-17-2013 ver 1.3.16
by friarsol » 25 May 2013, 12:45
Why do you think only one should be sacrificed? That would be like Cloning a Ball Lightning, part of the Card text says to Sacrifice it at a specific time. Obviously it shouldn't crash when it resolves, but you should probably post the crash if you want someone to be able to check it out.NoctisIncendia wrote:I attack with Gemini Engine and Wayfaring Temple, both go unblocked, as well as the twin token. I populate the twin token with the temple's trigger. At end of combat, both twin tokens trigger to be sacrificed when only the one created by gemini should, and when the populated token's sac trigger tries to resolve, Forge crashes.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Sloth » 25 May 2013, 12:50
I think you aren't right here sol. The "Sacrifice the token at end of combat." part belongs to the triggered ability of Gemini Engine and is not an ability of the token and shouldn't be copied.friarsol wrote:Why do you think only one should be sacrificed? That would be like Cloning a Ball Lightning, part of the Card text says to Sacrifice it at a specific time. Obviously it shouldn't crash when it resolves, but you should probably post the crash if you want someone to be able to check it out.NoctisIncendia wrote:I attack with Gemini Engine and Wayfaring Temple, both go unblocked, as well as the twin token. I populate the twin token with the temple's trigger. At end of combat, both twin tokens trigger to be sacrificed when only the one created by gemini should, and when the populated token's sac trigger tries to resolve, Forge crashes.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Forge Beta: 05-17-2013 ver 1.3.16
by friarsol » 25 May 2013, 12:58
Hmm probably shouldn't be posting as soon as I wake up then. Yea I guess it's creating a delayed trigger about that token. Instead of granting a trigger to that token.Sloth wrote:I think you aren't right here sol. The "Sacrifice the token at end of combat." part belongs to the triggered ability of Gemini Engine and is not an ability of the token and shouldn't be copied.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Beta: 05-17-2013 ver 1.3.16
by moomarc » 25 May 2013, 13:15
IIRC, to improve image caching card images needed to be enforced so a default one was created for cards missing an image. You can use either of these images to replace the current default. Just search your Forge folder for 'no_card.jpg' and replace with whichever you prefer...newcomer wrote:Is there any way to remove the default card image? I recall 1.3.4 having a blank image.
- blank replacement for missing image
- no_card.jpg (3.22 KiB) Viewed 3799 times
For cards like Oracle of Mul Daya, which allows you to play a card from a zone other than your hand, use the lightning bolt icon under your avatar. In the case you can’t do anything because the top card of the library isn’t a land.newcomer wrote:Does the player need to click somewhere to activate Oracle of Mul Daya? Primitive Etchings was on the field as well.
This icon also for when you want to use an ability of a card in a zone other than hand or battlefield (e.g. Flashback).
NOTE: Sometimes the number won’t be updated correctly - so if you’re expecting to be able to activate something here and it shows ‘0’, check anyway.
-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: Forge Beta: 05-17-2013 ver 1.3.16
by gos » 25 May 2013, 15:02
I always get a "waiting for action" crash when more than one Blood Artist triggers go on the stack at the same time.
Symphonic wrote:A crash when the opponent played a Stoneforge Mystic and looked for some equipment while being at 1 life. (I had a Suture Priest under my control, the opponent a Steppe Lynx and another equipment)
I wasn't able to continue playing, it was one of these wellknown "waiting for actions" crashes.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.3.16-r21506
Operating System: Windows 7 6.1 amd64
Java Version: 1.6.0_24 Sun Microsystems Inc.
java.lang.NullPointerException
at forge.card.mana.ManaCostBeingPaid.applySpellCostChange(ManaCostBeingPaid.java:641)
at forge.game.ai.ComputerUtilMana.calculateManaCost(ComputerUtilMana.java:439)
at forge.game.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:59)
at forge.card.ability.ai.ChangeZoneAi.hiddenOriginResolveAI(ChangeZoneAi.java:1232)
at forge.card.ability.effects.ChangeZoneEffect.changeHiddenOriginResolve(ChangeZoneEffect.java:598)
at forge.card.ability.effects.ChangeZoneEffect.resolve(ChangeZoneEffect.java:353)
at forge.card.ability.AbilityApiBased.resolve(AbilityApiBased.java:62)
at forge.card.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1055)
at forge.card.ability.AbilityUtils.resolve(AbilityUtils.java:1034)
at forge.game.ai.ComputerUtil.playNoStack(ComputerUtil.java:315)
at forge.card.trigger.WrappedAbility.resolve(WrappedAbility.java:372)
at forge.card.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1055)
at forge.card.ability.AbilityUtils.resolve(AbilityUtils.java:1034)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:613)
at forge.game.phase.PhaseHandler$1.run(PhaseHandler.java:746)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:754)
at forge.game.player.PlayerController.passPriority(PlayerController.java:82)
at forge.control.input.InputBase$1.run(InputBase.java:74)
at forge.FThreads$1.run(FThreads.java:115)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- gos
- Posts: 4369
- Joined: 03 Mar 2011, 15:21
- Location: Reykjavík, Iceland
- Has thanked: 231 times
- Been thanked: 232 times
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Pseudodude » 25 May 2013, 15:13
Bug: Battering Krasis with no counters only evolves once after I play a Sunspire Gatekeepers with two gates in play.
When the Gatekeepers ETB, two triggers pop up to be stacked, the Evolve from the Krasis and the Knight token from the Gatekeepers. These are ordered the right way around for the double-evolve, i.e. Knight to resolve first, then Evolve.
As the triggers resolve, the Knight is created first, as expected. This produces a second Evolve trigger from the Krasis, and this trigger is next to resolve. The Krasis is still a 2/1 at this point, so it gains a counter to become 3/2.
Next, the first Evolve trigger (for the Gatekeepers) resolves. The Krasis has a lower toughness than the Gatekeepers, so it should gain a second counter, but instead the trigger resolves with no effect.
I checked out the code from SVN and did some digging, and I was able to fix this bug on my end. It turns out that the Evolve Trigger object has its runParams overwritten between being put on the stack and resolving, so the first trigger, which should look at the Gatekeepers in this example, instead checks the Krasis' stats agains the Knight token a second time.
The fix is simple, but it seems like the sort of change that could have a lot of unintended consequences, so I'll leave it to someone with a better knowledge of the code base and regression tests to pull the trigger (pun intended) on this change.
The spam filter is preventing me from posting the edited code here, but you can find it at pastebin 38tjR085
When the Gatekeepers ETB, two triggers pop up to be stacked, the Evolve from the Krasis and the Knight token from the Gatekeepers. These are ordered the right way around for the double-evolve, i.e. Knight to resolve first, then Evolve.
As the triggers resolve, the Knight is created first, as expected. This produces a second Evolve trigger from the Krasis, and this trigger is next to resolve. The Krasis is still a 2/1 at this point, so it gains a counter to become 3/2.
Next, the first Evolve trigger (for the Gatekeepers) resolves. The Krasis has a lower toughness than the Gatekeepers, so it should gain a second counter, but instead the trigger resolves with no effect.
I checked out the code from SVN and did some digging, and I was able to fix this bug on my end. It turns out that the Evolve Trigger object has its runParams overwritten between being put on the stack and resolving, so the first trigger, which should look at the Gatekeepers in this example, instead checks the Krasis' stats agains the Knight token a second time.
The fix is simple, but it seems like the sort of change that could have a lot of unintended consequences, so I'll leave it to someone with a better knowledge of the code base and regression tests to pull the trigger (pun intended) on this change.
The spam filter is preventing me from posting the edited code here, but you can find it at pastebin 38tjR085
- Pseudodude
- Posts: 1
- Joined: 25 May 2013, 14:31
- Has thanked: 0 time
- Been thanked: 1 time
Re: Forge Beta: 05-17-2013 ver 1.3.16
by Sawteeth » 25 May 2013, 18:22
The AI is able to use Quicksand without sacrificing it.
- Sawteeth
- Posts: 13
- Joined: 14 Apr 2013, 23:20
- Has thanked: 0 time
- Been thanked: 0 time
Who is online
Users browsing this forum: Emmaythomson and 39 guests