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
Impossible Cards (tracking, discussing, etc.)
Moderator: CCGHQ Admins
Re: Impossible Cards (tracking, discussing, etc.)
by thefiremind » 29 Oct 2016, 23:41
I would strongly recommend this choice. If an ability isn't using the word "target", don't use TARGET blocks: you'll confuse yourself and the other modders who look at the code. Long time has passed since DotP2012 required an extensive use of targets even when there were none, luckily for us.Xander9009 wrote:Otherwise, it'll need replaced with a ChooseItem() function.
Using Make_Targets/Get_Targets instead of Make_Chest/Get_Chest when you are the one initializing them, though, is totally fine. I think the only difference is that target chests can also include a target definition, while regular chests can't.
< 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: 721 times
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 30 Oct 2016, 11:00
I've switched Forbidden Crypt to use chooseitem. I'll be testing it later today.
Has anyone created a manager for experience counters? I'm guessing it would be similar to energy but without the spending.
These are the cards that would use it:
Daxos the Returned
Ezuri, Claw of Progress
Kalemne, Disciple of Iroas
Meren of Clan Nel Toth
Mizzix of the Izmagnus
Has anyone created a manager for experience counters? I'm guessing it would be similar to energy but without the spending.
These are the cards that would use it:
Daxos the Returned
Ezuri, Claw of Progress
Kalemne, Disciple of Iroas
Meren of Clan Nel Toth
Mizzix of the Izmagnus
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 30 Oct 2016, 21:37
OP updated and new text file sent to Xander.
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 06 Nov 2016, 11:58
Is Joint Assault possible with the current implementation of Soulbond? Or would each Soulbond card have to be updated for it to work? In other words, how can Joint Assault check to see if the target creature is paired via Soulbond?
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by Xander9009 » 06 Nov 2016, 19:29
Completely possible. Go have a look at one, and you'll see this lineSplinterverse wrote:Is Joint Assault possible with the current implementation of Soulbond? Or would each Soulbond card have to be updated for it to work? In other words, how can Joint Assault check to see if the target creature is paired via Soulbond?
- Code: Select all
RSN_ObjectDC():Set_CardPtr(S_COMPARTMENT_ID_OBJ_PAIRED, target)
- Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_2_2" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local oFilter = ClearFilter()
oFilter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local oTarget = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if oTarget ~= nil then
local oPairedCreature = RSN_GetObjectDC(oTarget) and RSN_GetObjectDC(oTarget):Get_CardPtr(S_COMPARTMENT_ID_OBJ_PAIRED)
if oPairedCreature ~= nil then
EffectDC():Set_CardPtr(1, oPairedCreature)
else
local oFilter = ClearFilter()
oFilter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
oFilter:Add(FE_CARD_INSTANCE, OP_NOT, oTarget)
oFilter:Add(FE_CONTROLLER, OP_IS, oTarget:GetController())
local iCount = oFilter:EvaluateObjects()
for i=0,iCount-1 do
local oCreature = oFilter:GetNthEvaluatedObject(i)
if oCreature ~= nil then
oPairedCreature = RSN_GetObjectDC(oCreature) and RSN_GetObjectDC(oCreature):Get_CardPtr(S_COMPARTMENT_ID_OBJ_PAIRED)
if oPairedCreature ~= nil and oPairedCreature == oTarget then
EffectDC():Set_CardPtr(1, oCreature)
end
end
end
end
end
</RESOLUTION_TIME_ACTION>
<CONTINUOUS_ACTION layer="7C">
local oTarget = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if oTarget ~= nil then
local oCharacteristics = oTarget:GetCurrentCharacteristics()
oCharacteristics:Power_Add(2)
oCharacteristics:Toughness_Add(2)
end
local oPairedCreature = EffectDC():Get_CardPtr(1)
if oPairedCreature ~= nil then
local oCharacteristics = oPairedCreature:GetCurrentCharacteristics()
oCharacteristics:Power_Add(2)
oCharacteristics:Toughness_Add(2)
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED_ONLY" />
_______________________________
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
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 08 Nov 2016, 14:16
Thanks Xander. I will test that today.
New question -- is Hoarder's Greed possible given the ruling "10/1/2007 : The effect will automatically repeat itself until its controller doesn’t win the clash. There’s no other way to stop it"?
I ask because I see "return Player_Clash" in a separate RTA from the remainder of the existing clash cards' blocks. I would expect to have the result in the same block to be able to determine if it should repeat.
New question -- is Hoarder's Greed possible given the ruling "10/1/2007 : The effect will automatically repeat itself until its controller doesn’t win the clash. There’s no other way to stop it"?
I ask because I see "return Player_Clash" in a separate RTA from the remainder of the existing clash cards' blocks. I would expect to have the result in the same block to be able to determine if it should repeat.
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by thefiremind » 08 Nov 2016, 15:48
Wouldn't it be about the same as Crazed Firecat, then? Make a repeating action with a parity check: when parity == 0 you clash and always repeat (return true), when parity == 1 you check the clash result and repeat if you won.Splinterverse wrote:New question -- is Hoarder's Greed possible given the ruling "10/1/2007 : The effect will automatically repeat itself until its controller doesn’t win the clash. There’s no other way to stop it"?
I ask because I see "return Player_Clash" in a separate RTA from the remainder of the existing clash cards' blocks. I would expect to have the result in the same block to be able to determine if it should repeat.
< 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: 721 times
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 17 Nov 2016, 15:00
Are Errantry and Master of Cruelties possible with their "can only attack alone" clauses? The only implementation I could think of might be an approximation where you are asked at the beginning of combat if you want to attack with the creature enchanted by Errantry. If you select yes, all other creatures on your team get a can't attack characteristic until end of turn. But I'm guessing that implementation might interact poorly with certain cards. I can't think of any example cards off-hand, but it just seems like the kind of thing that would be problematic.
Also, what about Flash? Is that card impossible? Looking at the code in Gonti, I would think that some of the functions used there might help, but I can't think of any implementation that doesn't involve hard-coding every possible combination of mana symbols and reducing it by 2 (which would definitely not be worth it).
Also, what about Flash? Is that card impossible? Looking at the code in Gonti, I would think that some of the functions used there might help, but I can't think of any implementation that doesn't involve hard-coding every possible combination of mana symbols and reducing it by 2 (which would definitely not be worth it).
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by Xander9009 » 17 Nov 2016, 16:21
For the can only attack alone check, use a "CANT_ATTACK_TEST" triggered ability. If TriggerObject() == EffectSource() and there are creatures other than EffectSource() currently attacking, then return true.Splinterverse wrote:Are Errantry and Master of Cruelties possible with their "can only attack alone" clauses? The only implementation I could think of might be an approximation where you are asked at the beginning of combat if you want to attack with the creature enchanted by Errantry. If you select yes, all other creatures on your team get a can't attack characteristic until end of turn. But I'm guessing that implementation might interact poorly with certain cards. I can't think of any example cards off-hand, but it just seems like the kind of thing that would be problematic.
Also, what about Flash? Is that card impossible? Looking at the code in Gonti, I would think that some of the functions used there might help, but I can't think of any implementation that doesn't involve hard-coding every possible combination of mana symbols and reducing it by 2 (which would definitely not be worth it).
You don't need to hard-code the mana cost combinations. Once you've gotten it as a string (which the functions can give you), you can check the string for instances of colorless mana. Basically, just search for {#} within the cost string, and if it's found, reduce it by two. If it's greater than 0 still, you're done. If it's less than 1, remove it altogether.
- Code: Select all
local sCost = SomeFunction() -- sCost == "{3}{R}{R}"
local sOriginalColorlessCost = string.match(sCost, '{%d+}') -- Find {#} within the cost. Returns "{3}".
if sOriginalColorlessCost ~= nil then
local iColorlessCost = tonumber(string.sub(sOriginalColorlessCost, 2, -2)) - 2 -- Get just the number section (even if it's multiple digits) and reduces it by 2. Returns 1.
local sColorlessCost = ""
if iColorlessCost >= 1 then
sColorlessCost = "{"..iColorlessCost .."}" -- If the colorless cost component is still valid, turn it back into a mana string component with braces.
end
sCost = string.gsub(sCost, sOriginalColorlessCost, sColorlessCost) --The original colorless cost component is now either replaced with the reduced version (if it was >=1) or removed entirely.
end
--sCost is now reduced by up to {2} and is still a usable cost string.
_______________________________
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
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 18 Nov 2016, 14:40
I will be trying the above today.
New question -- is there a way to make the game a draw? Cards like Celestial Convergence and Divine Intervention refer to the game being a draw, but I am only familiar with WinGame() and LoseGame() functions. I'm guessing if I call LoseGame() on one player, the other one will automatically "win" so I don't think I can just call LoseGame() on the other player (or players).
New question -- is there a way to make the game a draw? Cards like Celestial Convergence and Divine Intervention refer to the game being a draw, but I am only familiar with WinGame() and LoseGame() functions. I'm guessing if I call LoseGame() on one player, the other one will automatically "win" so I don't think I can just call LoseGame() on the other player (or players).
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by Xander9009 » 18 Nov 2016, 14:42
Before overcomplicating it too much, try just calling LoseGame() on all players inside the same RTA and see what happens.
_______________________________
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
Re: Impossible Cards (tracking, discussing, etc.)
by nivmizzet1 » 25 Nov 2016, 04:03
is Zada, Hedron Grinder possible?
It's not listed in the exhaustive list of impossible cards in this thread but
Migookman in 2015 suggested it isn't possible
but later, very recently, he tried to code it, but without success so far
From the ensuing discussion it sounds like this card isn't possible at present but will be possible once Xander has distributed his protection functions.
It's not listed in the exhaustive list of impossible cards in this thread but
Migookman in 2015 suggested it isn't possible
but later, very recently, he tried to code it, but without success so far
From the ensuing discussion it sounds like this card isn't possible at present but will be possible once Xander has distributed his protection functions.
______________________________________
my DOTP 2014 Main mod page - my DOTP 2014 OP Decks mod page - Community WAD
my DOTP 2014 Main mod page - my DOTP 2014 OP Decks mod page - Community WAD
- nivmizzet1
- Posts: 613
- Joined: 21 Mar 2013, 10:10
- Has thanked: 100 times
- Been thanked: 25 times
Re: Impossible Cards (tracking, discussing, etc.)
by Xander9009 » 25 Nov 2016, 17:53
It's possible. It's just difficult/tedious, because you're correct when you say it just needs my protection functions to be distributed. When I get a chance, I'll do so unless someone else decides to do it.
_______________________________
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
Re: Impossible Cards (tracking, discussing, etc.)
by Splinterverse » 09 Dec 2016, 14:15
I'll be updating the master list soon.
I'm looking for answers to these questions and/or confirmation of some of my assumptions:
Leyline of Singularity - Don't think there's a way to make something "legendary".
Outwit - Is there a way to check if a spell on the stack is targeting a player?
Rings of Brighthearth - not sure if there is a trigger for this or if it can distinguish between mana abilities and non-mana abilities.
Riptide Replicator and Volrath's Laboratory -- guessing we'd need a generic token that can assume the creature type and PT? Maybe with generic art of some kind?
Runic Repetition and Tombfire -- can we detect whether a card has flashback?
Season of the Witch -- is checking for tapped/untapped and Defender sufficient here? I'm thinking that there are spells that prevent creatures from attacking and I'm not sure how to make this card aware of that. Maybe, since this happens at the end step, it could check for the can't attack characteristic?
Siege Behemoth - "as though it weren't blocked" damage assignment. Maybe approximate-able with a "deals no combat damage", but I'm not sure how the assignment of all the damage would happen since the number of creatures could be different every time.
Skullcrack - Preventing damage prevention?
Spiny Starfish - The rulings state that the tokens are based on the times it actually regenerated NOT how many times regeneration was applied. Is there a way to track how many times it regenerated?
Stabilizer - I don't think there's a way to track cycling. Am I correct?
Street Savvy - Any way to block landwalk creatures as though they didn't have that ability with just this creature?
Tromokratis - seems like blocking restriction, but I'm not sure.
Tsabo's Web - is there a way to detect whether a land has an activated ability that is not mana-producing?
Vassal's Duty - can we detect which creatures are legendary?
Ydwen Efreet - "become unblocked" is that possible?
I'm looking for answers to these questions and/or confirmation of some of my assumptions:
Leyline of Singularity - Don't think there's a way to make something "legendary".
Outwit - Is there a way to check if a spell on the stack is targeting a player?
Rings of Brighthearth - not sure if there is a trigger for this or if it can distinguish between mana abilities and non-mana abilities.
Riptide Replicator and Volrath's Laboratory -- guessing we'd need a generic token that can assume the creature type and PT? Maybe with generic art of some kind?
Runic Repetition and Tombfire -- can we detect whether a card has flashback?
Season of the Witch -- is checking for tapped/untapped and Defender sufficient here? I'm thinking that there are spells that prevent creatures from attacking and I'm not sure how to make this card aware of that. Maybe, since this happens at the end step, it could check for the can't attack characteristic?
Siege Behemoth - "as though it weren't blocked" damage assignment. Maybe approximate-able with a "deals no combat damage", but I'm not sure how the assignment of all the damage would happen since the number of creatures could be different every time.
Skullcrack - Preventing damage prevention?
Spiny Starfish - The rulings state that the tokens are based on the times it actually regenerated NOT how many times regeneration was applied. Is there a way to track how many times it regenerated?
Stabilizer - I don't think there's a way to track cycling. Am I correct?
Street Savvy - Any way to block landwalk creatures as though they didn't have that ability with just this creature?
Tromokratis - seems like blocking restriction, but I'm not sure.
Tsabo's Web - is there a way to detect whether a land has an activated ability that is not mana-producing?
Vassal's Duty - can we detect which creatures are legendary?
Ydwen Efreet - "become unblocked" is that possible?
---------------------------------------------
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: 75 times
Re: Impossible Cards (tracking, discussing, etc.)
by RiiakShiNal » 10 Dec 2016, 00:18
Wouldn't you just use oCard:GetCurrentCharacteristics():SuperType_GetWritable():Add(SUPERTYPE_LEGENDARY)?Splinterverse wrote:Leyline of Singularity - Don't think there's a way to make something "legendary".
There is, but it's not very friendly. Essentially you have a trigger to catch when an object targets a player, store off the object reference, then allow targeting of that reference while it is on the stack.Splinterverse wrote:Outwit - Is there a way to check if a spell on the stack is targeting a player?
I think you have a more fundamental problem. How will you copy the ability and/or change the targets?Splinterverse wrote:Rings of Brighthearth - not sure if there is a trigger for this or if it can distinguish between mana abilities and non-mana abilities.
Either a generic token or a token for each and every type. It's not particularly difficult to specify a type in either an ObjectDC chest or the DuelDataChest() then when the token enters the battlefield gets the type it needs from the chest sets it locally and assigns it to itself. Same can be done with P/T.Splinterverse wrote:Riptide Replicator and Volrath's Laboratory -- guessing we'd need a generic token that can assume the creature type and PT? Maybe with generic art of some kind?
If you give cards with Flashback a custom characteristic, then yes.Splinterverse wrote:Runic Repetition and Tombfire -- can we detect whether a card has flashback?
No, because a creature could attack then become untapped, or it could have Vigilance.Splinterverse wrote:Season of the Witch -- is checking for tapped/untapped and Defender sufficient here? I'm thinking that there are spells that prevent creatures from attacking and I'm not sure how to make this card aware of that. Maybe, since this happens at the end step, it could check for the can't attack characteristic?
If you approximate this you would need to make sure the damage dealt is considered "Combat" damage for ability interaction, though making it work with approximated Planeswalkers would probably be extremely complex. Assigning damage would be done on a per attacking creature basis so you would either use a repeating RTA or a filtered RTAs (depending on which works better with queries).Splinterverse wrote:Siege Behemoth - "as though it weren't blocked" damage assignment. Maybe approximate-able with a "deals no combat damage", but I'm not sure how the assignment of all the damage would happen since the number of creatures could be different every time.
You may not be able to handle that effect right.Splinterverse wrote:Skullcrack - Preventing damage prevention?
I don't think so, I believe that is buried in the engine itself.Splinterverse wrote:Spiny Starfish - The rulings state that the tokens are based on the times it actually regenerated NOT how many times regeneration was applied. Is there a way to track how many times it regenerated?
You may not be able to track cycling, but you could rewrite cycling to first check for a flag to make sure cycling is allowed before cards cycle. Though it requires changing all flags that cycle.Splinterverse wrote:Stabilizer - I don't think there's a way to track cycling. Am I correct?
No.Splinterverse wrote:Street Savvy - Any way to block landwalk creatures as though they didn't have that ability with just this creature?
It is a blocking restriction, but it may not be possible to code that specific restriction. It may need engine support.Splinterverse wrote:Tromokratis - seems like blocking restriction, but I'm not sure.
Sure, change all lands with Activated abilities that aren't mana producing to have a custom characteristic and check that.Splinterverse wrote:Tsabo's Web - is there a way to detect whether a land has an activated ability that is not mana-producing?
Yes, use Test() on the Type object which you can get from oCard:GetSuperType().Splinterverse wrote:Vassal's Duty - can we detect which creatures are legendary?
Not that I am aware of.Splinterverse wrote:Ydwen Efreet - "become unblocked" is that possible?
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2185
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Who is online
Users browsing this forum: No registered users and 59 guests