Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
2014




Community Wad
Moderator: CCGHQ Admins
Re: Community Wad
by Splinterverse » 13 Nov 2016, 15:55
Question . . . I'm not sure how to handle part of Giant Albatross. I basically need to be able to iterate through creatures, ask their controllers a multiple choice, and then somehow flag the creature based on the response all within a nested set of loops.
Here's the current code with a comment where I am seeking advice: http://pastebin.com/ukW9W8fn
Here's the current code with a comment where I am seeking advice: http://pastebin.com/ukW9W8fn
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by Splinterverse » 13 Nov 2016, 16:29
Another question ... with CW_Tokens_TappedAndAttacking is there a way to pass in the P/T values? I see that the function itself calls CW_Tokens, but I don't see where I can pass in the P/T values. This is needed for Gemini Engine.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by migookman » 13 Nov 2016, 21:54
You may want to check out this link: viewtopic.php?f=63&t=2891&p=183638&hilit=gemini+engine#p183638 about Gemini Engine.Splinterverse wrote:Another question ... with CW_Tokens_TappedAndAttacking is there a way to pass in the P/T values? I see that the function itself calls CW_Tokens, but I don't see where I can pass in the P/T values. This is needed for Gemini Engine.
Re: Community Wad
by Splinterverse » 13 Nov 2016, 22:04
Thanks for pointing that out migookman. I think I'll probably just skip that card for now as those options aren't really close enough to the rules.migookman wrote:You may want to check out this link: viewtopic.php?f=63&t=2891&p=183638&hilit=gemini+engine#p183638 about Gemini Engine.Splinterverse wrote:Another question ... with CW_Tokens_TappedAndAttacking is there a way to pass in the P/T values? I see that the function itself calls CW_Tokens, but I don't see where I can pass in the P/T values. This is needed for Gemini Engine.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by tmxk2012917 » 13 Nov 2016, 22:08
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
When I cast it, I was not asked to sacrifice an artifact so that I could not search my library for an artiact
- tmxk2012917
- Posts: 164
- Joined: 15 Mar 2015, 09:52
- Has thanked: 20 times
- Been thanked: 12 times
Re: Community Wad
by Splinterverse » 13 Nov 2016, 23:18
Finished coding for today; all cards referenced are from the missing cards list except where noted.
Coded, tested, and uploaded:
Æther Web
Ætherflame Wall
Dread Wight
Game Preserve
Giant Slug
Gibbering Hyenas
Gigantoplasm
Glamer Spinners
Goblin Assassin
Goblin Festival
Goblin Kites
Goblin Lyre
Goblin Machinist
Goblin Psychopath
Goblin Sappers
Goblin Tinkerer
Gore Vassal
Grave Consequences
Grifter's Blade
Reyhan, Last of the Abzan -- from Commander 2016
Songstitcher
Wall of Diffusion
Open Items:
-- CW_CARD_QUERY_SPLINTERVERSE has been updated and uploaded.
-- Ivory Mask worked appropriately with Goblin Festival (which uses not_targeted on an opponent selection).
-- Open question viewtopic.php?f=109&t=15783&p=205606#p205596 (I repeat anything in this list that hasn't been answered so that people only need to check my latest post)
-- Goblin Spymaster http://pastebin.com/VeNsKCjQ gave me an error message that the token does not exist in the token list. I was using the latest version of the .wad.
-- Giant Oyster http://pastebin.com/h1XJYfTT everything works except the adding of the -1/-1 counters. It continues to add counters to the first target even after the Oyster has been untapped and re-tapped. I don't think my code covers that option, but I'm not sure what to add to make it so.
-- Telekinesis http://pastebin.com/NMjxK1ty everything works as it should except untapping of the creature after a few turns. It basically stays tapped forever.
-- The new reveal function (CW_General_RevealDC) isn't working for me. Here's the code I was using to test: http://pastebin.com/6rFPRUSN
Next:
Back tomorrow for more coding on missing cards.
Coded, tested, and uploaded:
Æther Web
Ætherflame Wall
Dread Wight
Game Preserve
Giant Slug
Gibbering Hyenas
Gigantoplasm
Glamer Spinners
Goblin Assassin
Goblin Festival
Goblin Kites
Goblin Lyre
Goblin Machinist
Goblin Psychopath
Goblin Sappers
Goblin Tinkerer
Gore Vassal
Grave Consequences
Grifter's Blade
Reyhan, Last of the Abzan -- from Commander 2016
Songstitcher
Wall of Diffusion
Open Items:
-- CW_CARD_QUERY_SPLINTERVERSE has been updated and uploaded.
-- Ivory Mask worked appropriately with Goblin Festival (which uses not_targeted on an opponent selection).
-- Open question viewtopic.php?f=109&t=15783&p=205606#p205596 (I repeat anything in this list that hasn't been answered so that people only need to check my latest post)
-- Goblin Spymaster http://pastebin.com/VeNsKCjQ gave me an error message that the token does not exist in the token list. I was using the latest version of the .wad.
-- Giant Oyster http://pastebin.com/h1XJYfTT everything works except the adding of the -1/-1 counters. It continues to add counters to the first target even after the Oyster has been untapped and re-tapped. I don't think my code covers that option, but I'm not sure what to add to make it so.
-- Telekinesis http://pastebin.com/NMjxK1ty everything works as it should except untapping of the creature after a few turns. It basically stays tapped forever.
-- The new reveal function (CW_General_RevealDC) isn't working for me. Here's the code I was using to test: http://pastebin.com/6rFPRUSN
Next:
Back tomorrow for more coding on missing cards.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by Splinterverse » 13 Nov 2016, 23:20
Splinterverse wrote:Finished coding for today; all cards referenced are from the missing cards list except where noted.
Coded, tested, and uploaded:
Æther Web
Ætherflame Wall
Dread Wight
Game Preserve
Giant Slug
Gibbering Hyenas
Gigantoplasm
Glamer Spinners
Goblin Assassin
Goblin Festival
Goblin Kites
Goblin Lyre
Goblin Machinist
Goblin Psychopath
Goblin Sappers
Goblin Tinkerer
Gore Vassal
Grave Consequences
Grifter's Blade
Reyhan, Last of the Abzan -- from Commander 2016
Songstitcher
Wall of Diffusion
Open Items:
-- Updated the targeting tags in Risky Move.
-- CW_CARD_QUERY_SPLINTERVERSE has been updated and uploaded.
-- Ivory Mask worked appropriately with Goblin Festival (which uses not_targeted on an opponent selection).
-- Open question viewtopic.php?f=109&t=15783&p=205606#p205596 (I repeat anything in this list that hasn't been answered so that people only need to check my latest post)
-- Goblin Spymaster http://pastebin.com/VeNsKCjQ gave me an error message that the token does not exist in the token list. I was using the latest version of the .wad.
-- Giant Oyster http://pastebin.com/h1XJYfTT everything works except the adding of the -1/-1 counters. It continues to add counters to the first target even after the Oyster has been untapped and re-tapped. I don't think my code covers that option, but I'm not sure what to add to make it so.
-- Telekinesis http://pastebin.com/NMjxK1ty everything works as it should except untapping of the creature after a few turns. It basically stays tapped forever.
-- The new reveal function (CW_General_RevealDC) isn't working for me. Here's the code I was using to test: http://pastebin.com/6rFPRUSN
Next:
Back tomorrow for more coding on missing cards.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by thefiremind » 13 Nov 2016, 23:48
EDIT: I deleted the code because it wasn't working. If I'm successful you'll find the card in the CW.Splinterverse wrote:Question . . . I'm not sure how to handle part of Giant Albatross. I basically need to be able to iterate through creatures, ask their controllers a multiple choice, and then somehow flag the creature based on the response all within a nested set of loops.
Last edited by thefiremind on 15 Nov 2016, 10:06, edited 1 time in total.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Community Wad
by Splinterverse » 14 Nov 2016, 12:03
Thanks for the Albatross code, thefiremind. I will test today.
New question . . . how does a PLAY_TIME_ACTION compare to an RTA? Is it that the PTA resolves first? Are there any signs of when we should use a PTA instead of an RTA?
Thanks as always for the help and support.
New question . . . how does a PLAY_TIME_ACTION compare to an RTA? Is it that the PTA resolves first? Are there any signs of when we should use a PTA instead of an RTA?
Thanks as always for the help and support.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by thefiremind » 14 Nov 2016, 12:32
PTA runs before the resolution of the spell/ability, about at the same time as eventual costs are paid.Splinterverse wrote:how does a PLAY_TIME_ACTION compare to an RTA? Is it that the PTA resolves first? Are there any signs of when we should use a PTA instead of an RTA?
Before generic costs were a thing, we used PTA for implementing them, but at the moment there are very few specific scenarios where you are forced to use a PTA, and I can't think of any example at the moment.
I took a very quick look at the other cards you are having problems with. I'll take a more detailed look later if I have time and the problems are still unsolved. What I can say for now is that I would have taken a different approach for Telekinesis:
- When you need to prevent damage without any additional clause you can use one of the characteristics used in the official Fog: grant CHARACTERISTIC_DOESNT_DEAL_COMBAT_DAMAGE to the creature and it should be enough. I have never tested how this kind of characteristics would interact with unpreventable damage, I have always trusted the official Fog. If you want to test this aspect, feel free to do so.
- In order to prevent the creature from untapping for 2 untap steps, I would have used target:TapAndHold(), then created a delayed trigger that calls target:Hold() on it at the beginning of its controller's next untap step (the previous "Hold" will be gone when the trigger fires, because the game untaps the permanents before firing beginning of untap step triggers, which is exactly what we want). Gatherer says that it doesn't matter if the creature changes controller, so you don't need to save the controller in delayDC, just save the target and make the delayed trigger fire when TriggerPlayer() == target:GetController() (where "target" is the appropriate card pointer containing it).
About Goblin Festival, I'm not sure if I understood correctly, but did you find problems in using ChooseItem when there are players in the filter? Even if no cards used it before, I think it should work. You know I'm very picky on those aspects, but if you use a target (even with not_targeted), the choice is made before resolution, and it's not how it's supposed to work.
I used targets with not_targeted on that particular modal card because it was a very special scenario where the choices needed to be made before resolution.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Community Wad
by Splinterverse » 14 Nov 2016, 13:03
I will give these ideas a try. Thanks!thefiremind wrote:I took a very quick look at the other cards you are having problems with. I'll take a more detailed look later if I have time and the problems are still unsolved. What I can say for now is that I would have taken a different approach for Telekinesis:
- When you need to prevent damage without any additional clause you can use one of the characteristics used in the official Fog: grant CHARACTERISTIC_DOESNT_DEAL_COMBAT_DAMAGE to the creature and it should be enough. I have never tested how this kind of characteristics would interact with unpreventable damage, I have always trusted the official Fog. If you want to test this aspect, feel free to do so.
- In order to prevent the creature from untapping for 2 untap steps, I would have used target:TapAndHold(), then created a delayed trigger that calls target:Hold() on it at the beginning of its controller's next untap step (the previous "Hold" will be gone when the trigger fires, because the game untaps the permanents before firing beginning of untap step triggers, which is exactly what we want). Gatherer says that it doesn't matter if the creature changes controller, so you don't need to save the controller in delayDC, just save the target and make the delayed trigger fire when TriggerPlayer() == target:GetController() (where "target" is the appropriate card pointer containing it).
I didn't try it in this scenario. I will do that moving forward, and at some point, when there's time, I can alter Festival to use the ChooseItem approach.thefiremind wrote:About Goblin Festival, I'm not sure if I understood correctly, but did you find problems in using ChooseItem when there are players in the filter? Even if no cards used it before, I think it should work. You know I'm very picky on those aspects, but if you use a target (even with not_targeted), the choice is made before resolution, and it's not how it's supposed to work.
I used targets with not_targeted on that particular modal card because it was a very special scenario where the choices needed to be made before resolution.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by nachonal986 » 14 Nov 2016, 21:09
oh no problem, maybe would be useful if it can put some date or something into the xml, then look on the deck builder from the advanced filter into the string filter?Xander9009 wrote:Oh, I'm sorry. Do you mean which cards were added to the decks themselves? No, there's no way to do that. Unless you have a backup of the deck from before it was changed, then that information is not stored anywhere.
You are the cracks, this way I think we can check the cards and maker new decks more easily.
Cya!
-
nachonal986 - Posts: 83
- Joined: 27 Jul 2015, 21:13
- Has thanked: 17 times
- Been thanked: 1 time
Re: Community Wad
by Splinterverse » 14 Nov 2016, 21:50
Finished coding for today; all cards referenced are from the missing cards list.
Coded, tested, and uploaded:
Ashen-Skin Zubera
Dripping-Tongue Zubera
Ember-Fist Zubera
Erratic Explosion
Erratic Mutation
Excavator
Explosive Revelation
Flaming Gambit
Flay
Flesh Allergy
Flickering Spirit
Floating-Dream Zubera
Floodgate
Flow of Maggots
Flux
Fold into Æther
Force Bubble
Fractured Loyalty
Frenetic Sliver
Freyalise's Winds
Fungus Elemental
Furnace Scamp
Goblin Flotilla
Kaboom!
Read the Runes
Silent-Chant Zubera
Tempt with Discovery
Bugs fixed:
Goblin Machinist -- minor tweaks; tested
HQ art uploaded (all were missing):
Silent-Chant Zubera
Open Items:
-- CW_CARD_QUERY_SPLINTERVERSE has been updated and uploaded.
-- Fyndhorn Druid http://pastebin.com/mZaHdcHj It's not giving life on exit.
-- Telekinesis http://pastebin.com/vcHLwD31 Mostly working, but it's not keeping the targeted creature tapped for two of it's controller's turns (only one). thefiremind gave me good advice, but perhaps I implemented it incorrectly?
-- Is there an issue with using GetEffectX() in a triggered ability? I've nearly completed work on Frankenstein's Monster, but it's giving me grief when I call "GetEffectX()". It's showing as 0 in debug.
-- Goblin Spymaster http://pastebin.com/VeNsKCjQ gave me an error message that the token does not exist in the token list. I was using the latest version of the .wad.
-- Giant Oyster http://pastebin.com/h1XJYfTT everything works except the adding of the -1/-1 counters. It continues to add counters to the first target even after the Oyster has been untapped and re-tapped. I don't think my code covers that option, but I'm not sure what to add to make it so.
-- The new reveal function (CW_General_RevealDC) isn't working for me. Here's the code I was using to test: http://pastebin.com/6rFPRUSN
Next:
Back on Thursday to continue coding missing cards.
Coded, tested, and uploaded:
Ashen-Skin Zubera
Dripping-Tongue Zubera
Ember-Fist Zubera
Erratic Explosion
Erratic Mutation
Excavator
Explosive Revelation
Flaming Gambit
Flay
Flesh Allergy
Flickering Spirit
Floating-Dream Zubera
Floodgate
Flow of Maggots
Flux
Fold into Æther
Force Bubble
Fractured Loyalty
Frenetic Sliver
Freyalise's Winds
Fungus Elemental
Furnace Scamp
Goblin Flotilla
Kaboom!
Read the Runes
Silent-Chant Zubera
Tempt with Discovery
Bugs fixed:
Goblin Machinist -- minor tweaks; tested
HQ art uploaded (all were missing):
Silent-Chant Zubera
Open Items:
-- CW_CARD_QUERY_SPLINTERVERSE has been updated and uploaded.
-- Fyndhorn Druid http://pastebin.com/mZaHdcHj It's not giving life on exit.
-- Telekinesis http://pastebin.com/vcHLwD31 Mostly working, but it's not keeping the targeted creature tapped for two of it's controller's turns (only one). thefiremind gave me good advice, but perhaps I implemented it incorrectly?
-- Is there an issue with using GetEffectX() in a triggered ability? I've nearly completed work on Frankenstein's Monster, but it's giving me grief when I call "GetEffectX()". It's showing as 0 in debug.
-- Goblin Spymaster http://pastebin.com/VeNsKCjQ gave me an error message that the token does not exist in the token list. I was using the latest version of the .wad.
-- Giant Oyster http://pastebin.com/h1XJYfTT everything works except the adding of the -1/-1 counters. It continues to add counters to the first target even after the Oyster has been untapped and re-tapped. I don't think my code covers that option, but I'm not sure what to add to make it so.
-- The new reveal function (CW_General_RevealDC) isn't working for me. Here's the code I was using to test: http://pastebin.com/6rFPRUSN
Next:
Back on Thursday to continue coding missing cards.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 76 times
Re: Community Wad
by tmxk2012917 » 14 Nov 2016, 23:18
- tmxk2012917
- Posts: 164
- Joined: 15 Mar 2015, 09:52
- Has thanked: 20 times
- Been thanked: 12 times
Re: Community Wad
by Xander9009 » 14 Nov 2016, 23:31
For the token used by Goblin Spymaster, that's because I wasn't paying attention. The function file listed it as "GOBLIN_C_1_1_S_H" instead of "GOBLIN_C_1_1_R_S". I replaced "R" with "S" instead of replacing "H" with "S". It's been fixed.
For Fyndhorn Druid, try removing pre_trigger="1". pre-trigger replacements usually are used to replace an action entirely, such as when it says "instead of *whatever*". You don't need the int to be set before the actual blocking, so removing pre_trigger should be fine.
Also, remember what was mentioned recently. When you see a card phrased like this one, it uses an INTERVENING_IF block. When *this*, if *this*, do *this*. That's an intervening if, and it needs to use an intervening if block. It gets checked both before it's put onto the stack and before it resolves. In a case where it's impossible to change between those two checks (such as in this case), you can use ignore_resolution_check="1", but it still needs to be in the right block: INTERVENING_IF. Just return true if the "if" clause is met.
Hopefully removing the pre_trigger bit will fix it. Not certain, though.
Telekinesis: Don't need to protect the pointer on line 54. It's not meant to continue functioning if it changes zones.
Your spell ability tries to use LinkedDC() but it's not marked with linked_ability_group="1". However, neither it nor the delayed trigger need the LinkedDC(). Remove line 44. Remove linked_ability_group="1" from line 67.
Delayed triggers need a cleanup, and they need a resource id. Add resource_id="1" to line 67 (the 1 here matches the 1 used on line 55). Add the cleanup tag: <CLEANUP fire_once="1" />. Finally, the delayed trigger should be a replacement_effect.
The RTA at line 72 should just be this:
Perhaps a safe way to handle it would be to return true in the cleanup if the pointer is nil. I'm not sure, though, since I've never tried it.
Lines 69 and 71 effectively do the same thing. A cleared register returns 0 when you check it. So, you don't need anything more than LinkedDC():Clear() in that RTA (you can remove the 'if' blocks entirely).
Line 75: CLEANUP tags are for delayed triggers. Remove this.
Line 101: Don't protect the pointer. Protecting the pointer should only be done if the ability should continue to do something with that card even after it changes zones, which is not the case here.
Line 118 and 129: Never uses or needs LinkedDC(), so I'd remove the linked_ability_group="1".
Delayed trigger #5 has no cleanup (which is probably why it isn't running). Its cleanup should be:
I'll look into the reveal function to make sure I didn't mess it up. (Also, completely irrelevant, but your test card says it will reveal 7 cards, but it reveals 8. 8-1=7, and i will start at 0. 0, 1, 2, 3, 4, 5, 6, 7. for i=0,6 would be 7 cards.)
For Fyndhorn Druid, try removing pre_trigger="1". pre-trigger replacements usually are used to replace an action entirely, such as when it says "instead of *whatever*". You don't need the int to be set before the actual blocking, so removing pre_trigger should be fine.
Also, remember what was mentioned recently. When you see a card phrased like this one, it uses an INTERVENING_IF block. When *this*, if *this*, do *this*. That's an intervening if, and it needs to use an intervening if block. It gets checked both before it's put onto the stack and before it resolves. In a case where it's impossible to change between those two checks (such as in this case), you can use ignore_resolution_check="1", but it still needs to be in the right block: INTERVENING_IF. Just return true if the "if" clause is met.
- Code: Select all
<INTERVENING_IF ignore_resolution_check="1">
return LinkedDC():Get_Int(33) == 1
</INTERVENING_IF>
Hopefully removing the pre_trigger bit will fix it. Not certain, though.
Telekinesis: Don't need to protect the pointer on line 54. It's not meant to continue functioning if it changes zones.
Your spell ability tries to use LinkedDC() but it's not marked with linked_ability_group="1". However, neither it nor the delayed trigger need the LinkedDC(). Remove line 44. Remove linked_ability_group="1" from line 67.
Delayed triggers need a cleanup, and they need a resource id. Add resource_id="1" to line 67 (the 1 here matches the 1 used on line 55). Add the cleanup tag: <CLEANUP fire_once="1" />. Finally, the delayed trigger should be a replacement_effect.
The RTA at line 72 should just be this:
- Code: Select all
<RESOLUTION_TIME_ACTION>
local target_creature = EffectDC():Get_CardPtr(0)
if target_creature ~= nil then
target_creature:Hold()
end
</RESOLUTION_TIME_ACTION>
Perhaps a safe way to handle it would be to return true in the cleanup if the pointer is nil. I'm not sure, though, since I've never tried it.
- Code: Select all
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
local target_creature = EffectDC():Get_CardPtr(0)
return MTG():GetStep() == STEP_UNTAP and target_creature ~= nil and TriggerPlayer() == target_creature:GetController()
</TRIGGER>
<CLEANUP fire_once="1">
return EffectDC():Get_CardPtr(0) == nil
</CLEANUP>
Lines 69 and 71 effectively do the same thing. A cleared register returns 0 when you check it. So, you don't need anything more than LinkedDC():Clear() in that RTA (you can remove the 'if' blocks entirely).
Line 75: CLEANUP tags are for delayed triggers. Remove this.
Line 101: Don't protect the pointer. Protecting the pointer should only be done if the ability should continue to do something with that card even after it changes zones, which is not the case here.
Line 118 and 129: Never uses or needs LinkedDC(), so I'd remove the linked_ability_group="1".
Delayed trigger #5 has no cleanup (which is probably why it isn't running). Its cleanup should be:
- Code: Select all
<CLEANUP>
return EffectSource() == nil or EffectSource():IsTapped() == false
</CLEANUP>
I'll look into the reveal function to make sure I didn't mess it up. (Also, completely irrelevant, but your test card says it will reveal 7 cards, but it reveals 8. 8-1=7, and i will start at 0. 0, 1, 2, 3, 4, 5, 6, 7. for i=0,6 would be 7 cards.)
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Who is online
Users browsing this forum: No registered users and 3 guests