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
Formal Request Thread
Moderator: CCGHQ Admins
Re: Formal Request Thread
by migookman » 01 Nov 2014, 01:49
I was finally getting around to trying to code cards similar to Armor of Thorns but it isn't sacrificing when I cast it for flash. The code I used is as follows:
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Puoi lanciare il Sigillo delle Reliquie come se avesse lampo. Se è stato lanciato quando non poteva essere lanciata una stregoneria, il controllore del permanente che è diventato lo sacrifica all’inizio della prossima sottofase di cancellazione.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<TRIGGER value="CONSIDERED_FOR_CAST" simple_qualifier="self" pre_trigger="1">
if (TriggerObject() ~= nil) and (EffectController():IsSorceryTime() == false) then
return true
else
return false
end
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():GrantPseudoFlash()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local effectSource = EffectSource()
if effectSource ~= nil and
if effectController():IsSorceryTime() == false then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, effectSource)
MTG():CreateDelayedTrigger(2, delayDC)
end
</RESOLUTION_TIME_ACTION>
<AI_MODIFIERS worthless="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_CardPtr(0)
if target ~= nil then
EffectController():Sacrifice( target )
end
</RESOLUTION_TIME_ACTION>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>
Re: Formal Request Thread
by Xander9009 » 01 Nov 2014, 01:55
Protect the pointer. Put "delayDC:Protect_CardPtr(0)" immediately after "delayDC:Set_CardPtr(0, effectSource)"migookman wrote:I was finally getting around to trying to code cards similar to Armor of Thorns but it isn't sacrificing when I cast it for flash. The code I used is as follows:
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Puoi lanciare il Sigillo delle Reliquie come se avesse lampo. Se è stato lanciato quando non poteva essere lanciata una stregoneria, il controllore del permanente che è diventato lo sacrifica all’inizio della prossima sottofase di cancellazione.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.]]></LOCALISED_TEXT>
<TRIGGER value="CONSIDERED_FOR_CAST" simple_qualifier="self" pre_trigger="1">
if (TriggerObject() ~= nil) and (EffectController():IsSorceryTime() == false) then
return true
else
return false
end
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():GrantPseudoFlash()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local effectSource = EffectSource()
if effectSource ~= nil and
if effectController():IsSorceryTime() == false then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, effectSource)
MTG():CreateDelayedTrigger(2, delayDC)
end
</RESOLUTION_TIME_ACTION>
<AI_MODIFIERS worthless="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_CardPtr(0)
if target ~= nil then
EffectController():Sacrifice( target )
end
</RESOLUTION_TIME_ACTION>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>
_______________________________
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: Formal Request Thread
by NeoAnderson » 01 Nov 2014, 02:00
The card as you trying to code will not work, first of all because you have to use 2 different trigger CONSIDERED_FOR_CAST to grantpseudoflash (but you could also use a static ability), and SPELL_PLAYED simple_qualifier="self" as second trigger.migookman wrote:I was finally getting around to trying to code cards similar to Armor of Thorns but it isn't sacrificing when I cast it for flash. The code I used is as follows:
Inside the Spell played trigger you create the delayDC.
Anyway also in this way it will not work properly because if you cast it with Flash or pseudoflash granted by another card it should not be sacrified, for example with Alchemist's Refuge.
AS by MTG card rules : 10/1/2009: The sacrifice occurs only if you cast it using its own ability. If you cast it using some other effect (for instance, if it gained flash from Vedalken Orrery), then it won't be sacrificed.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by migookman » 01 Nov 2014, 02:53
Thanks for the information Neo. I will use your suggestions to see if I can get it to work as per the pre-2009 ruling.
Re: Formal Request Thread
by RiiakShiNal » 01 Nov 2014, 12:53
In the case of Mana Reflection, Generator Servant itself should produce (or more if more copies of Mana Reflection), and the effects should apply to all mana produced by Generator Servant. However, the current version of Manual Mana does not have support for this, but it could probably be added though I'll have to think about the best way to do it.Xander9009 wrote:The issue I was thinking of was whether or not Mana Reflection should allow Generator Servant to grant up to 4 creatures haste. It won't, but I'm just not sure if that's correct or not.
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
Re: Formal Request Thread
by Xander9009 » 01 Nov 2014, 13:15
I'm not sure you should bother just yet. Mana Reflection hasn't been coded and I don't know of any others that do similar things except Mana Flare. And since Mana Flare itself produces the mana, it wouldn't grant haste. However, if you want to also consider how to make Mana Reflection as well, then hey, I won't complainRiiakShiNal wrote:In the case of Mana Reflection, Generator Servant itself should produce (or more if more copies of Mana Reflection), and the effects should apply to all mana produced by Generator Servant. However, the current version of Manual Mana does not have support for this, but it could probably be added though I'll have to think about the best way to do it.Xander9009 wrote:The issue I was thinking of was whether or not Mana Reflection should allow Generator Servant to grant up to 4 creatures haste. It won't, but I'm just not sure if that's correct or not.
Best I've got for that is granting a custom characteristic for Produces Double Mana or something and that is an integer which is incremented instead of set. When a card produces mana, check that card's ProducesDoubleMana integer and multiply the production by 1+Var or "for 1+Var do". If you're short on time, I'd be happy to write up the code, though I'd definitely be leaving it up to you to check and release it. I simply don't know enough about the functions to know for sure I'm not breaking hundreds of cards.
That's of course only if you don't already know a way to properly code Mana Reflection.
_______________________________
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: Formal Request Thread
by NeoAnderson » 01 Nov 2014, 13:19
Anyway i have revised a little bit the Code of Generator Servant, now i store the pointer of each token produced, just to be sure if something will change with new functions when you will implement Mana Reflection effect, now it looks :Xander9009 wrote:I'm not sure you should bother just yet. Mana Reflection hasn't been coded and I don't know of any others that do similar things except Mana Flare. And since Mana Flare itself produces the mana, it wouldn't grant haste. However, if you want to also consider how to make Mana Reflection as well, then hey, I won't complainRiiakShiNal wrote:In the case of Mana Reflection, Generator Servant itself should produce (or more if more copies of Mana Reflection), and the effects should apply to all mana produced by Generator Servant. However, the current version of Manual Mana does not have support for this, but it could probably be added though I'll have to think about the best way to do it.Xander9009 wrote:The issue I was thinking of was whether or not Mana Reflection should allow Generator Servant to grant up to 4 creatures haste. It won't, but I'm just not sure if that's correct or not.
Best I've got for that is granting a custom characteristic for Produces Double Mana or something and that is an integer which is incremented instead of set. When a card produces mana, check that card's ProducesDoubleMana integer and multiply the production by 1+Var or "for 1+Var do". If you're short on time, I'd be happy to write up the code, though I'd definitely be leaving it up to you to check and release it. I simply don't know enough about the functions to know for sure I'm not breaking hundreds of cards.
That's of course only if you don't already know a way to properly code Mana Reflection.
- Code: Select all
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
local oChest = delayDC:Make_Chest(0)
EffectDC():Set_Int(10, MTG():GetStep())
RSN_ProduceForPlayerNoTrigger( "{1}", 2, EffectController() )
local oTokens = RSN_GetProducedTokenChest()
if oTokens ~= nil then
local i = 0
local token = oTokens:Get_CardPtr(i)
while (token ~= nil) do
oChest:Set_CardPtr( i, token )
i=i+1
token = oTokens:Get_CardPtr(i)
end
end
</RESOLUTION_TIME_ACTION>
2. Guys Anyone have a good idea to implement Charging Rhino ?? I think it will not be codable, but i would receive a confirmation.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by Xander9009 » 01 Nov 2014, 13:45
1: Good. That should definitely do the trickNeoAnderson wrote:Anyway i have revised a little bit the Code of Generator Servant, now i store the pointer of each token produced, just to be sure if something will change with new functions when you will implement Mana Reflection effect, now it looks :I have used a while cycle, instead of a FOR cycle (0 to 1), so it will store everything inside the Produced Tokens chest.
- Code: Select all
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
local oChest = delayDC:Make_Chest(0)
EffectDC():Set_Int(10, MTG():GetStep())
RSN_ProduceForPlayerNoTrigger( "{1}", 2, EffectController() )
local oTokens = RSN_GetProducedTokenChest()
if oTokens ~= nil then
local i = 0
local token = oTokens:Get_CardPtr(i)
while (token ~= nil) do
oChest:Set_CardPtr( i, token )
i=i+1
token = oTokens:Get_CardPtr(i)
end
end
</RESOLUTION_TIME_ACTION>
2. Guys Anyone have a good idea to implement Charging Rhino ?? I think it will not be codable, but i would receive a confirmation.
2: As far as I know, you're right in that it can't be coded. RSN, TFM, and Sumo would know with more certainty, though. The only thing I've got in the CW that does that is Stalking Tiger. However, it's using DUEL_CHARACTERISTIC_MAX_ONE_BLOCKER, and that's the wrong thing (the card needs removed). That's what Silent Arbiter uses to only allow one blocker total. Another card that can't be done, I think.
_______________________________
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: Formal Request Thread
by migookman » 01 Nov 2014, 15:29
Yes, I noticed that when testing Charging Rhino. It was actually using DUEL_CHARACTERISTIC_MAX_ONE_
BLOCKER globally. Not sure how I didn't catch that when testing Stalking Tiger.
BLOCKER globally. Not sure how I didn't catch that when testing Stalking Tiger.
Re: Formal Request Thread
by migookman » 01 Nov 2014, 22:59
I tried using the suggestions for coding Armor of Thorns but it is still not sacrificing:
- Code: Select all
<TRIGGER value="CONSIDERED_FOR_CAST" simple_qualifier="self" pre_trigger="1">
if (TriggerObject() ~= nil) and (EffectController():IsSorceryTime() == false) then
return true
else
return false
end
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():GrantPseudoFlash()
end
</RESOLUTION_TIME_ACTION>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="self" >
if (TriggerObject() ~= nil) and (EffectController():IsSorceryTime() == false) then
return true
else
return false
end
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local effectSource = EffectSource()
if effectSource ~= nil and
if effectController():IsSorceryTime() == false then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, effectSource)
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(2, delayDC)
end
</RESOLUTION_TIME_ACTION>
<AI_MODIFIERS worthless="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_CardPtr(0)
if target ~= nil then
EffectController():Sacrifice( target )
end
</RESOLUTION_TIME_ACTION>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>
Re: Formal Request Thread
by NeoAnderson » 02 Nov 2014, 04:50
The main problem is about this line :migookman wrote:I tried using the suggestions for coding Armor of Thorns but it is still not sacrificing:Also, do you think the code in Sigarda, Host of Herons would help to make it compliant with the 2009 rulings?
- Code: Select all
<TRIGGER value="CONSIDERED_FOR_CAST" simple_qualifier="self" pre_trigger="1">
if (TriggerObject() ~= nil) and (EffectController():IsSorceryTime() == false) then
return true
else
return false
end
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():GrantPseudoFlash()
end
</RESOLUTION_TIME_ACTION>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="self" >
if (TriggerObject() ~= nil) and (EffectController():IsSorceryTime() == false) then
return true
else
return false
end
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local effectSource = EffectSource()
if effectSource ~= nil and
if effectController():IsSorceryTime() == false then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, effectSource)
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(2, delayDC)
end
</RESOLUTION_TIME_ACTION>
<AI_MODIFIERS worthless="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_CardPtr(0)
if target ~= nil then
EffectController():Sacrifice( target )
end
</RESOLUTION_TIME_ACTION>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>
- Code: Select all
if effectController():IsSorceryTime() == false then
Anyway you can remove that line because you are already checking the condition inside the trigger. About Sigarda, Host of Herons you don't need it.
About how to make this card full compliant i have to make some tests and i can tell you if is possible.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by NeoAnderson » 03 Nov 2014, 17:27
I would receive an opinion about the possibility to code the follow card : Sliver Hive.
Did someone attempted to code it?
I think it should be codable...
Did someone attempted to code it?
I think it should be codable...
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by Xander9009 » 03 Nov 2014, 17:42
There are a few other mana sources that restrict what the mana can be used for. Perhaps create a special mana token which gains/loses its mana producing ability based on the card which is being considered for cast? I don't think that would work for casting cards from other zones besides the hand, but it might be a starting point.NeoAnderson wrote:I would receive an opinion about the possibility to code the follow card : Sliver Hive.
Did someone attempted to code it?
I think it should be codable...
_______________________________
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: Formal Request Thread
by NeoAnderson » 03 Nov 2014, 17:54
As i remember sometime ago i was discussing with Riiak about the issues of the engine to handle this kind of effects, but now i had some new ideas from my experience with other cards i have coded.Xander9009 wrote:There are a few other mana sources that restrict what the mana can be used for. Perhaps create a special mana token which gains/loses its mana producing ability based on the card which is being considered for cast? I don't think that would work for casting cards from other zones besides the hand, but it might be a starting point.NeoAnderson wrote:I would receive an opinion about the possibility to code the follow card : Sliver Hive.
Did someone attempted to code it?
I think it should be codable...
I think i have found a solution would you test it and let me know your feedback??
I still don't know if something could break other interactions!If not we have a solution for all the cards who produce mana with restrictions!
- Sliver Hive - Neo Ver 1.0 | Open
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="NEO_M15_247_SLIVER_HIVE_915383384" />
<CARDNAME text="SLIVER_HIVE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Sliver Hive]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Essaim de slivoïdes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Colmena de fragmentados]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Remasuri-Nest]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Alveare dei Tramutanti]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[スリヴァーの巣]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[슬리버의 소굴]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Улей Щепок]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Colônia de Fractius]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[裂片妖母巢]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[裂片妖母巢]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="915383384" />
<ARTID value="915383384" />
<ARTIST name="Igor Kieryluk" />
<CASTING_COST cost="" />
<TYPE metaname="Land" />
<EXPANSION value="M15" />
<RARITY metaname="R" />
<ACTIVATED_ABILITY forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {1} to your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez {1} à votre réserve.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega {1} a tu reserva de maná.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um {1}.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi {1} alla tua riserva di mana.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに{1}を加える。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: {1}을 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте {1} в ваше хранилище маны.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione {1} à sua reserva de mana.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加{1}到你的法术力池中。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加{1}到你的魔法力池中。]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_Produce( "{1}", 1 )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_EliminateExtraManaTokens()
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
S_DisplayManaPool(EffectController())
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="upkeep" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_blockers" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY linked_ability_group="1" forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add one mana of any color to your mana pool. Spend this mana only to cast a Sliver spell.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez un mana de la couleur de votre choix à votre réserve. Ne dépensez ce mana que pour lancer un sort de slivoïde.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega un maná de cualquier color a tu reserva de maná. Usa este maná solo para lanzar un hechizo de Fragmentado.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um ein Mana einer beliebigen Farbe. Verwende dieses Mana nur, um einen Remasuri-Zauberspruch zu wirken.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi un mana di un qualsiasi colore alla tua riserva di mana. Spendi questo mana solo per lanciare una magia Tramutante.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色1色のマナ1点を加える。このマナは、スリヴァー・呪文を唱えるためにのみ使用できる。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 당신의 마나풀에 원하는 색의 마나 한 개를 담는다. 이 마나는 슬리버 주문을 발동하는 데에만 사용할 수 있다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте одну ману любого цвета в ваше хранилище маны. Тратьте эту ману только на разыгрывание заклинания Щепки.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione um mana de qualquer cor à sua reserva de mana. Gaste este mana apenas para conjurar uma mágica de Fractius.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加一点任意颜色的法术力到你的法术力池中。此法术力只能用来施放裂片妖咒语。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加一點任意顏色的魔法力到你的魔法力池中。此魔法力只能用來施放裂片妖咒語。]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
local oPlayer = EffectController()
local oCard = EffectSource()
if (oPlayer ~= nil) then
oPlayer:BeginNewMultipleChoice()
oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
end
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local nColour = EffectController():GetMultipleChoiceResult() + 1
if (nColour == COLOUR_BLACK) then
RSN_ProduceForPlayerNoTrigger( "{B}", 1, EffectController() )
elseif (nColour == COLOUR_BLUE) then
RSN_ProduceForPlayerNoTrigger( "{U}", 1, EffectController() )
elseif (nColour == COLOUR_GREEN) then
RSN_ProduceForPlayerNoTrigger( "{G}", 1, EffectController() )
elseif (nColour == COLOUR_RED) then
RSN_ProduceForPlayerNoTrigger( "{R}", 1, EffectController() )
elseif (nColour == COLOUR_WHITE) then
RSN_ProduceForPlayerNoTrigger( "{W}", 1, EffectController() )
end
local oTokens = RSN_GetProducedTokenChest()
local delayDC = nil
local oChest = nil
local shifter = 0
if LinkedDC():Get_Chest(1) == nil then
delayDC = LinkedDC():Make_Chest(1)
oChest = delayDC:Make_Chest(0)
else
delayDC = LinkedDC():Get_Chest(1)
oChest = delayDC:Get_Chest(0)
local tokenA = oChest:Get_CardPtr(shifter)
while (tokenA ~= nil) do
shifter=shifter+1
tokenA = oChest:Get_CardPtr(shifter)
end
end
LinkedDC():Set_Int(1000, MTG():GetStep())
local ActivChest = EffectController():PlayerDataChest():Make_Chest(NEO_SLIVER_MANA_ACTIVATION)
ActivChest:Set_Int(100, 1)
if oTokens ~= nil then
local i = 0
local token = oTokens:Get_CardPtr(i)
while (token ~= nil) do
oChest:Set_CardPtr(shifter+i, token )
i=i+1
token = oTokens:Get_CardPtr(i)
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_EliminateExtraManaTokens()
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():CreateDelayedTrigger(3, nil)
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
S_DisplayManaPool(EffectController())
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="upkeep" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_blockers" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
<STATIC_ABILITY linked_ability_group="1">
<CONTINUOUS_ACTION layer="6">
if EffectController():PlayerDataChest():Get_Chest(NEO_SLIVER_MANA_ACTIVATION) ~= nil then
local ActivChest = EffectController():PlayerDataChest():Get_Chest(NEO_SLIVER_MANA_ACTIVATION)
local value = ActivChest:Get_Int(100)
if value ~= 1 then
local i = 0
local delayDC = LinkedDC():Get_Chest(1)
if delayDC ~= nil then
local token_chest = delayDC:Get_Chest(0)
if token_chest ~= nil then
local token = token_chest:Get_NthCardPtr(i)
if token ~= nil then
token:GetCurrentCharacteristics():LoseAllAbilities()
end
while (token ~= nil) do
i = i + 1
token = token_chest:Get_NthCardPtr(i)
if token ~= nil then
token:GetCurrentCharacteristics():LoseAllAbilities()
end
end
end
end
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1">
<TRIGGER value="CONSIDERED_FOR_CAST" simple_qualifier="controller" pre_trigger="1" />
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
local ActivChest = nil
if EffectController():PlayerDataChest():Get_Chest(NEO_SLIVER_MANA_ACTIVATION) == nil then
ActivChest = EffectController():PlayerDataChest():Make_Chest(NEO_SLIVER_MANA_ACTIVATION)
else
ActivChest = EffectController():PlayerDataChest():Get_Chest(NEO_SLIVER_MANA_ACTIVATION)
end
if TriggerObject():GetSubType():Test( CREATURE_TYPE_SLIVER ) then
ActivChest:Set_Int(100, 1)
else
ActivChest:Set_Int(100, 0)
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():CreateDelayedTrigger(2, nil)
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():ReevaluateContinuousEffects()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2" replacement_effect="1" priority="20">
<TRIGGER value="STATE_BASED_EFFECTS"/>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
MTG():ReevaluateContinuousEffects()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="3" linked_ability_group="1" replacement_effect="1" priority="20">
<TRIGGER value="STATE_BASED_EFFECTS">
local StoredStep = LinkedDC():Get_Int(1000)
local ActualStep = MTG():GetStep()
if ActualStep > StoredStep then
return true
else
return false
end
</TRIGGER>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
local i = 0
local delayDC = LinkedDC():Get_Chest(1)
if delayDC ~= nil then
local token_chest = delayDC:Get_Chest(0)
if token_chest ~= nil then
local token = token_chest:Get_NthCardPtr(i)
if token ~= nil then
token:QueueZoneChange( ZONE_CEASED_TO_EXIST, EffectController() )
end
while (token ~= nil) do
i = i + 1
token = token_chest:Get_NthCardPtr(i)
if token ~= nil then
token:QueueZoneChange( ZONE_CEASED_TO_EXIST, EffectController() )
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
LinkedDC():Clear()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{5}, {T} : Mettez sur le champ de bataille un jeton de créature 1/1 incolore Slivoïde. N’activez cette capacité que si vous contrôlez un slivoïde.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{5}, {T}: Pon en el campo de batalla una ficha de criatura Fragmentado incolora 1/1. Activa esta habilidad solo si controlas un Fragmentado.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{5}, {T}: Bringe einen 1/1 farblosen Remasuri-Kreaturenspielstein ins Spiel. Aktiviere diese Fähigkeit nur, falls du einen Remasuri kontrollierst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{5}, {T}: Metti sul campo di battaglia una pedina creatura Tramutante 1/1 incolore. Attiva questa abilità solo se controlli un Tramutante.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{5}, {T}:無色の1/1のスリヴァー・クリーチャー・トークンを1体戦場に出す。この能力は、あなたがスリヴァーをコントロールしているときにのみ起動できる。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{5}, {T}: 1/1 무색 슬리버 생물 토큰 한 개를 전장에 놓는다. 이 능력은 당신이 슬리버를 조종할 때에만 활성화할 수 있다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{5}, {T}: положите на поле битвы одну фишку существа 1/1 бесцветная Щепка. Активируйте эту способность, только если вы контролируете Щепку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{5}, {T}: Coloque no campo de batalha uma ficha de criatura incolor 1/1 do tipo Fractius. Ative esta habilidade somente se você controlar um Fractius.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{5},{T}:将一个1/1无色裂片妖衍生生物放进战场。只能于你操控裂片妖时起动此异能。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{5},{T}:將一個1/1無色裂片妖衍生生物放進戰場。只能於你操控裂片妖時起動此異能。]]></LOCALISED_TEXT>
<COST mana_cost="{5}" type="Mana" />
<COST type="TapSelf" />
<AVAILABILITY>
local filter = ClearFilter()
filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
local total = filter:CountStopAt(1)
return total > 0
</AVAILABILITY>
<RESOLUTION_TIME_ACTION>
MTG():PutTokensOntoBattlefield( "NEO_M15_TOKEN_011_SLIVER_1_1_C_915938311", 1, EffectController() )
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="0">
RSN_ClearCanProduceMana()
RSN_MarkCanProduceMana( "{1}{B}{G}{R}{U}{W}" )
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="8">
local oCard = EffectSource()
if (RSN_CheckSwitchToFallback( oCard )) then
local oCharacteristics = oCard:GetCurrentCharacteristics()
oCharacteristics:GrantAbility( 0 )
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
<RESOLUTION_TIME_ACTION>
RSN_ClearProducedMana()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<MANA_ABILITY resource_id="0">
<COST type="TapSelf" />
<PRODUCES amount="{1}" />
</MANA_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="NEO_M15_TOKEN_011_SLIVER_1_1_C_915938311" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
</CARD_V2>
- Attachments
-
- Sliver Hive.rar
- Sliver Hive - Neo Ver 1.0
- (214.2 KiB) Downloaded 248 times
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by Xander9009 » 03 Nov 2014, 18:28
Nope. It was quite happy to let me play Birds of Paradise.NeoAnderson wrote:As i remember sometime ago i was discussing with Riiak about the issues of the engine to handle this kind of effects, but now i had some new ideas from my experience with other cards i have coded.
I think i have found a solution would you test it and let me know your feedback??
I still don't know if something could break other interactions!If not we have a solution for all the cards who produce mana with restrictions!
_______________________________
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 44 guests