Re: Community Wad
Fixed. I also removed the erroneous check to make sure it's the creature's controller's turn.tmxk2012917 wrote:A bug of Spark Elemental:
it was sacrificed at the next beginning step instead of the end step
High Quality Resources for Collectible Card Games and Home of the CCGHQ Team
https://www.slightlymagic.net/forum/
https://www.slightlymagic.net/forum/viewtopic.php?f=109&t=15783
Fixed. I also removed the erroneous check to make sure it's the creature's controller's turn.tmxk2012917 wrote:A bug of Spark Elemental:
it was sacrificed at the next beginning step instead of the end step
Should be fixed. I altered it a fair amount before finally noticing the reason (it said "RESOLUTION_ACTION" instead of "RESOLUTION_TIME_ACTION"), so it needs tested.tmxk2012917 wrote:A bug of Transmute Artifact:
When I cast it, I was not asked to sacrifice an artifact so that I could not search my library for an artiact
The only idea I have is that the token's author may have forgot to give it the Creature type: if it has no types, it's invisible just like the managers.Splinterverse wrote:-- Something odd is going on with ELEMENTAL_C_7_1_R_HT. I have coded Elemental Appeal and it "appears" to create the token, but the token can't be seen on screen.
Everything seems fine to me, and EffectController should be accessible from costs, even in PREREQUISITE blocks (which are very restricted in what they can access).Splinterverse wrote:-- Fire Covenant http://pastebin.com/MUeyjLJa
<COST type="Life" amount="*" />You can start by not making the game complain about the duration, like this:Splinterverse wrote:-- Giant Oyster http://pastebin.com/aUTwde90
<DURATION>
return EffectSource() == nil or EffectSource():IsTapped() == false
</DURATION>You coded it exactly as I would have, so it seems fine to me. Could it be that in DotP2014 the beginning of the untap step was fired before the untap happens? Try to make the delayed trigger fire on STEP_DRAW instead of STEP_UNTAP and see what happens.Splinterverse wrote:-- Telekinesis http://pastebin.com/iSTdM6H3
I know the problem here. EffectSource is available as long as the spell is on the stack, but as soon as it hits the graveyard, EffectSource is wiped and the condition inside your second continuous action fails to evaluate. Try calling EffectSourceLKI():WasKicked() instead.Splinterverse wrote:-- Falling Timber http://pastebin.com/MN02uh9Z
EffectDC():Set_Int(0, the_boolean_var and 1 or 0)I'm looking at the code you posted here and I can't see anything wrong (you return true for no reason, but Xander9009 already pointed that out and it shouldn't harm the function anyway). What's the problem exactly? I can only think of one possibility: maybe the game refuses to show the choice because you unselected all the pointers so there's nothing to choose? Try to comment out (--) the part where you unselect, and see what happens.Splinterverse wrote:-- Any luck fixing the CW_General_RevealDC function?
I changed the function to the following (to include properly optional parameters, rename variables to include type prefixes, and provide an error message if it has invalid parameters). But I messed up on line 19 by putting "oPlayer ~= oPlayer" instead of "oNthPlayer ~= oPlayer". It's been corrected and should work in the next update.thefiremind wrote:I'm looking at the code you posted here and I can't see anything wrong (you return true for no reason, but Xander9009 already pointed that out and it shouldn't harm the function anyway). What's the problem exactly? I can only think of one possibility: maybe the game refuses to show the choice because you unselected all the pointers so there's nothing to choose? Try to comment out (--) the part where you unselect, and see what happens.Splinterverse wrote:-- Any luck fixing the CW_General_RevealDC function?
--Reveals cards in a DC to each player, but omits the {oPlayer} if provided. {iReviewDCRegister} is used for a temporary DC.
--Input: Chest{, Player, Int}
--Output: None
CW_General_RevealDC = function(oRevealDC, oPlayer, iReviewDCRegister)
if oPlayer == nil then
oPlayer = EffectController()
end
if iReviewDCRegister == nil then
iReviewDCRegister = 900
end
if oPlayer ~= nil and oRevealDC ~= nil and type(iReviewDCRegister) == "number" then
local oReviewDC = EffectDC():Make_Chest(iReviewDCRegister)
local iCount = oRevealDC:Count()
for i=0, iCount-1 do
oRevealDC:QueryUnselect_CardPtr(i)
end
for i=0,MTG():GetNumberOfPlayers()-1 do
local oNthPlayer = MTG():GetNthPlayer(i)
if oNthPlayer ~= nil and oPlayer ~= oPlayer then
oNthPlayer:ChooseItemFromDC("SPL_CARD_QUERY_CHOOSE_A_CARD_TO_EXIT_THIS_VIEW", oRevealDC, oReviewDC, QUERY_FLAG_MAY)
end
end
else
CW_General_Error("CW_General_RevealDC: Invalid parameters.")
end
endI'm not sure where to look for that, but I think Xander will probably respond on this one later.thefiremind wrote:The only idea I have is that the token's author may have forgot to give it the Creature type: if it has no types, it's invisible just like the managers.Splinterverse wrote:-- Something odd is going on with ELEMENTAL_C_7_1_R_HT. I have coded Elemental Appeal and it "appears" to create the token, but the token can't be seen on screen.
Made this change. Will test today.thefiremind wrote:Everything seems fine to me, and EffectController should be accessible from costs, even in PREREQUISITE blocks (which are very restricted in what they can access).Splinterverse wrote:-- Fire Covenant http://pastebin.com/MUeyjLJa
Can you try to use a normal life cost with the amount set to "*" (instead of the generic one) and then read it from the spell ability through GetEffectX()? Like this:I don't know if it works, but it's worth trying.
- Code: Select all
<COST type="Life" amount="*" />
Made these changes. Will test them today.thefiremind wrote:You can start by not making the game complain about the duration, like this:Splinterverse wrote:-- Giant Oyster http://pastebin.com/aUTwde90There's also another thing you should do: in the second delayed trigger you are using simple_qualifier="self", but that's the same as using EffectSource, which isn't guaranteed to work in delayed triggers as you already know. Save EffectSource in the delayDC and use that in both trigger conditions of the second delayed trigger.
- Code: Select all
<DURATION>
return EffectSource() == nil or EffectSource():IsTapped() == false
</DURATION>
Done. Will test.thefiremind wrote:You coded it exactly as I would have, so it seems fine to me. Could it be that in DotP2014 the beginning of the untap step was fired before the untap happens? Try to make the delayed trigger fire on STEP_DRAW instead of STEP_UNTAP and see what happens.Splinterverse wrote:-- Telekinesis http://pastebin.com/iSTdM6H3
I think I did try the LKI version, but I will try it again. Not sure what you mean in the code example. Would the code actually contain the boolean variable followed by "and 1 or 0" or are you saying convert what's in the the_boolean_var to 1 or 0?thefiremind wrote:I know the problem here. EffectSource is available as long as the spell is on the stack, but as soon as it hits the graveyard, EffectSource is wiped and the condition inside your second continuous action fails to evaluate. Try calling EffectSourceLKI():WasKicked() instead.Splinterverse wrote:-- Falling Timber http://pastebin.com/MN02uh9Z
You won't need to do this for Falling Timber if EffectSourceLKI works, but here's something I took the time to search for: since there's no Set_Bool for generic data chests, if we ever need to save a boolean as an integer, the shortest way to do it is the following:"true and 1 or 0" will return 1, while "false and 1 or 0" will return 0, so it works as a conversion from boolean to number.
- Code: Select all
EffectDC():Set_Int(0, the_boolean_var and 1 or 0)
If EffectSourceLKI doesn't work either, then I'll adapt the example to this card: you can add a RESOLUTION_TIME_ACTION where you save the boolean returned by WasKicked() in an EffectDC register. Since there's no Set_Bool for generic data chests, you'll save it as a number, by doing this:Splinterverse wrote:I think I did try the LKI version, but I will try it again. Not sure what you mean in the code example. Would the code actually contain the boolean variable followed by "and 1 or 0" or are you saying convert what's in the the_boolean_var to 1 or 0?
<RESOLUTION_TIME_ACTION>
EffectDC():Set_Int( 0, EffectSource():WasKicked() and 1 or 0 )
</RESOLUTION_TIME_ACTION>EffectDC():Get_Int(0) == 1