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 thefiremind » 04 Jul 2013, 15:27
Checking for summoning sickness of the card itself is easy, checking other cards is hard because you would need to save the information somewhere.NEMESiS wrote:How can Total War be made? Can we check for summoning sickness?
< 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: Formal Request Thread
by sumomole » 04 Jul 2013, 16:48
Yes, when I tell you, I suddenly realized that maybe I think too much, I have successfully coded Stonehorn Dignitary, perhaps you gave me inspiration.thefiremind wrote:I tried to code Eon Hub like this:
then I made a deck with Eon Hub and Sulfuric Vortex, and it seems to work!
Actually, in my test I was using BEGINNING_OF_STEP, but that probably was making it trigger twice (not that it matters much).
This is a really great news, I'm going to try Time Stop, we will get more fun this year.
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by East Bay » 04 Jul 2013, 19:20
anyone know why PutTokensOntoBattlefieldTappedAndAttacking doesn't work? I made Giest but angel never attacks.
Re: Formal Request Thread
by thefiremind » 04 Jul 2013, 19:25
I coded Kessig Cagebreakers recently and it works. Remember that you need the player that you want to attack as last parameter:East Bay wrote:anyone know why PutTokensOntoBattlefieldTappedAndAttacking doesn't work? I made Giest but angel never attacks.
- Code: Select all
MTG():PutTokensOntoBattlefieldTappedAndAttacking( "TOKEN_FILENAME", number_of_tokens, EffectController(), pointer_to_the_player )
< 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: Formal Request Thread
by East Bay » 04 Jul 2013, 20:33
Thank You, but quick question what if the player has shroudthefiremind wrote:I coded Kessig Cagebreakers recently and it works. Remember that you need the player that you want to attack as last parameter:East Bay wrote:anyone know why PutTokensOntoBattlefieldTappedAndAttacking doesn't work? I made Giest but angel never attacks.which doesn't need to be the same player attacked by the Geist, so you need to ask which opponent you want to attack with the Angel before creating it.
- Code: Select all
MTG():PutTokensOntoBattlefieldTappedAndAttacking( "TOKEN_FILENAME", number_of_tokens, EffectController(), pointer_to_the_player )
Also when you guys get the chance I would love to see how storm and split second work in D14
Re: Formal Request Thread
by thefiremind » 04 Jul 2013, 22:17
DotP2014 makes a clear distinction: if you use the TARGET block, then you are targetting (and shroud prevents that); if you just set the filter and then call ChooseItem/ChooseItems, then you are not targetting.East Bay wrote:Thank You, but quick question what if the player has shroud
Storm needs to use the new Interrogation object because it seems that the register that was keeping track of all the played spells isn't there anymore. I guess this should work:East Bay wrote:Also when you guys get the chance I would love to see how storm and split second work in D14
- Storm | Open
- Code: Select all
<TRIGGERED_ABILITY active_zone="ZONE_STACK">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Storm]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Déluge]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tormenta]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sturm]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tempesta]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ストーム]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Storm]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Шторм]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Rajada]]></LOCALISED_TEXT>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
local interrogation = MTG():ClearInterrogationQuery()
local spellsCastBefore = interrogation:Count( INTERROGATE_SPELLS_CAST, INTERROGATE_THIS_TURN ) - 1
if spellsCastBefore > 0 then
for i=0,spellsCastBefore-1 do
local copy = EffectController():CopySpell( EffectSourceLKI() )
EffectController():ChooseNewTargets(copy)
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- Split second | Open
- Code: Select all
<STATIC_ABILITY active_zone="ZONE_STACK">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Split second]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Fraction de seconde]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fracción de segundo ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sekundenbruchteil]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Battibaleno]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[刹那]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Split second]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Мгновение ока]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fração de segundo]]></LOCALISED_TEXT>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetFilterType(FILTER_TYPE_PLAYERS)
</FILTER>
<CONTINUOUS_ACTION layer="8" filter_id="0">
if FilteredPlayer() ~= nil then
local characteristics = FilteredPlayer():GetCurrentCharacteristics()
characteristics:Bool_Set(PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, 1)
characteristics:Bool_Set(PLAYER_CHARACTERISTIC_CANT_ACTIVATE_NONMANA_ABILITIES, 1)
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
< 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: Formal Request Thread
by gorem2k » 04 Jul 2013, 23:13
Populate:
Evolve:
- Code: Select all
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Populate.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_TOKEN_TO_POPULATE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
filter:Add( FE_IS_TOKEN, true )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
MTG():PutTokenCopiesOntoBattlefield( target, 1, EffectController() )
end
</RESOLUTION_TIME_ACTION>
Evolve:
- code | Open
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Evolve]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" to_zone="ZONE_IN_PLAY" simple_qualifier="objectyoucontrol">
if TriggerObject():GetCurrentPower() > Object():GetCurrentPower() or TriggerObject():GetCurrentToughness() > Object():GetCurrentToughness() then
return TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and TriggerObject() ~= nil then
if TriggerObject():GetCurrentPower() > EffectSource():GetCurrentPower() or TriggerObject():GetCurrentToughness() > EffectSource():GetCurrentToughness() then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Re: Formal Request Thread
by Master Necro » 05 Jul 2013, 05:23
sumomole wrote:Untested
Detain a permanent. (Until your next turn, that permanent can't attack or block and its activated abilities can't be activated.)Radiance means target card and each other card that shares a color with it, the code of DotP2013 can still be used.
- Lyev Skyknight | Open
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Lyev Skyknight enters the battlefield, detain target nonland permanent an opponent controls.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<TARGET tag="CARD_QUERY_CHOOSE_PERMANENT_TO_DETAIN" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_IS_PERMANENT, true )
filter:Add( FE_TYPE, OP_NOT, CARD_TYPE_LAND )
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>
<CONTINUOUS_ACTION layer="8">
local detainCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
if detainCard ~= nil then
local characteristics = detainCard:GetCurrentCharacteristics()
characteristics:Bool_Set( CHARACTERISTIC_CANT_ATTACK, 1 )
characteristics:Bool_Set( CHARACTERISTIC_CANT_BLOCK, 1 )
characteristics:Bool_Set( CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1 )
end
</CONTINUOUS_ACTION>
<DURATION>
return (EffectController():MyTurn() ~= 0 and MTG():GetStep() == STEP_UNTAP) or EffectController() == nil
</DURATION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
</TRIGGERED_ABILITY>
- Brightflame | Open
- Code: Select all
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|Radiance| — Brightflame deals X damage to target creature and each other creature that shares a color with it. You gain life equal to the damage dealt this way.]]></LOCALISED_TEXT>
<SFX text="GLOBAL_MAGMA_PLAY" />
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_DEAL_X_DAMAGE_RADIANCE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
</TARGET_DEFINITION>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_LUA_CONDITION, 1, EffectController(), EffectDC())
</FILTER>
<FILTER_CONDITION id="1">
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if FilteredCard() ~= nil and target ~= nil and FilteredCard():GetColour():TestAny(target:GetColour()) then
return true
else
return false
end
</FILTER_CONDITION>
<RESOLUTION_TIME_ACTION filter_id="0">
if FilteredCard() ~= nil then
EffectSourceLKI():DealDamageTo( GetEffectX(), FilteredCard() )
end
local damage_dealt = EffectSourceLKI():GetLastDamageAmountDealt()
EffectController():GainLife(damage_dealt)
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
</SPELL_ABILITY>
thefiremind wrote:I coded Kessig Cagebreakers recently and it works. Remember that you need the player that you want to attack as last parameter:East Bay wrote:anyone know why PutTokensOntoBattlefieldTappedAndAttacking doesn't work? I made Giest but angel never attacks.which doesn't need to be the same player attacked by the Geist, so you need to ask which opponent you want to attack with the Angel before creating it.
- Code: Select all
MTG():PutTokensOntoBattlefieldTappedAndAttacking( "TOKEN_FILENAME", number_of_tokens, EffectController(), pointer_to_the_player )
thefiremind wrote:I tried to code Eon Hub like this:sumomole wrote:I have tried SkipStep, but I failed, SkipStep(STEP_UNTAP) and SkipStep(STEP_UNTAP, player) are wrong, I don't know what is the correct format.then I made a deck with Eon Hub and Sulfuric Vortex, and it seems to work!
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players skip their upkeep steps.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les joueurs passent leurs étapes d’entretien.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los jugadores se saltan sus pasos de mantenimiento.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spieler übergehen ihre Versorgungssegmente.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I giocatori saltano il loro mantenimento.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤーはアップキープ・ステップをとばす。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Players skip their upkeep steps.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Players skip their upkeep steps.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os jogadores pulam suas etapas de manutenção.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" pre_trigger="1">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
MTG():SkipStep()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Actually, in my test I was using BEGINNING_OF_STEP, but that probably was making it trigger twice (not that it matters much).
gorem2k wrote:Populate:just change or register CARD_QUERY target tag into GLOSSARY.xml or use an existing one. made Wake the Reflections with this and tested by me.
- Code: Select all
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Populate.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_TOKEN_TO_POPULATE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
filter:Add( FE_IS_TOKEN, true )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
MTG():PutTokenCopiesOntoBattlefield( target, 1, EffectController() )
end
</RESOLUTION_TIME_ACTION>
Evolve:(exactly the same as DotP2013)
- code | Open
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Evolve]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" to_zone="ZONE_IN_PLAY" simple_qualifier="objectyoucontrol">
if TriggerObject():GetCurrentPower() > Object():GetCurrentPower() or TriggerObject():GetCurrentToughness() > Object():GetCurrentToughness() then
return TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and TriggerObject() ~= nil then
if TriggerObject():GetCurrentPower() > EffectSource():GetCurrentPower() or TriggerObject():GetCurrentToughness() > EffectSource():GetCurrentToughness() then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Thank you guys updated it all to the first post.thefiremind wrote:Storm needs to use the new Interrogation object because it seems that the register that was keeping track of all the played spells isn't there anymore. I guess this should work:East Bay wrote:Also when you guys get the chance I would love to see how storm and split second work in D14Split second is easier now because there's a perfect characteristic for players (hoping that it works):
- Storm | Open
- Code: Select all
<TRIGGERED_ABILITY active_zone="ZONE_STACK">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Storm]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Déluge]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tormenta]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sturm]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tempesta]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ストーム]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Storm]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Шторм]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Rajada]]></LOCALISED_TEXT>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
local interrogation = MTG():ClearInterrogationQuery()
local spellsCastBefore = interrogation:Count( INTERROGATE_SPELLS_CAST, INTERROGATE_THIS_TURN ) - 1
if spellsCastBefore > 0 then
for i=0,spellsCastBefore-1 do
local copy = EffectController():CopySpell( EffectSourceLKI() )
EffectController():ChooseNewTargets(copy)
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>Both are untested.
- Split second | Open
- Code: Select all
<STATIC_ABILITY active_zone="ZONE_STACK">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Split second]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Fraction de seconde]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fracción de segundo ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sekundenbruchteil]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Battibaleno]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[刹那]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Split second]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Мгновение ока]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fração de segundo]]></LOCALISED_TEXT>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetFilterType(FILTER_TYPE_PLAYERS)
</FILTER>
<CONTINUOUS_ACTION layer="8" filter_id="0">
if FilteredPlayer() ~= nil then
local characteristics = FilteredPlayer():GetCurrentCharacteristics()
characteristics:Bool_Set(PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, 1)
characteristics:Bool_Set(PLAYER_CHARACTERISTIC_CANT_ACTIVATE_NONMANA_ABILITIES, 1)
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by CharybdisV » 05 Jul 2013, 05:35
A handful of requests if anyone has the time!
Xathrid Necromancer (from the M14 spoilers)
Imposing Sovereign (from the M14 spoilers)
Bitterblossom
Ravenous Demon // Archdemon of Greed
Flip cards are always a pain, so that one's kinda a if someone finds a really easy way to do it with the new framework of Magic 2014.
Xathrid Necromancer (from the M14 spoilers)
Imposing Sovereign (from the M14 spoilers)
Bitterblossom
Ravenous Demon // Archdemon of Greed
Flip cards are always a pain, so that one's kinda a if someone finds a really easy way to do it with the new framework of Magic 2014.
-
CharybdisV - Posts: 8
- Joined: 08 Aug 2012, 04:46
- Has thanked: 2 times
- Been thanked: 2 times
Re: Formal Request Thread
by NEMESiS » 05 Jul 2013, 14:59
Well, I don't have a clue... can someone make it if they can?thefiremind wrote:Checking for summoning sickness of the card itself is easy, checking other cards is hard because you would need to save the information somewhere.NEMESiS wrote:How can Total War be made? Can we check for summoning sickness?
-
NEMESiS - Posts: 460
- Joined: 03 Jan 2013, 04:02
- Location: Pools of Becoming
- Has thanked: 70 times
- Been thanked: 21 times
Re: Formal Request Thread
by drleg3nd » 06 Jul 2013, 00:36
is this the right place to request cards ? all I see is coding lol
Re: Formal Request Thread
by gorem2k » 06 Jul 2013, 00:57
I think Master Necro made this thread for reference in simplifying code mechanics. I thought about an idea this morning; would be nice if thefiremind web generator would include them when there's a need for it. this would save us time. but then, the tool is already priceless.
Re: Formal Request Thread
by Xander9009 » 06 Jul 2013, 01:36
I don't know how to do flip cards. Don't even know where to begin with them. But I got the others working for you. At least, they appear to be working. The Imposing Sovereign is slightly messed up. I couldn't get it to make them enter the battlefield tapped, so it taps them as soon as then enter. This should really only be a problem rarely, possibly creatures with haste and tap abilities. Anyway, if I manage to get it fixed, I'll post it. But I've worked on that in particular far too long haha.CharybdisV wrote:A handful of requests if anyone has the time!
Xathrid Necromancer (from the M14 spoilers)
Imposing Sovereign (from the M14 spoilers)
Bitterblossom
Ravenous Demon // Archdemon of Greed
Flip cards are always a pain, so that one's kinda a if someone finds a really easy way to do it with the new framework of Magic 2014.
I don't know how to make a wad file with just cards and have them be usable, so you'll need to do that bit (or, as I did, stick them in another working wad and repack it...).
I've got a few requests of my own. I'm trying to make a deck (one that I actually own), but I've found a few cards that I can't figure out. I got all the rest. I don't necessarily need the cards done, just some advice on HOW to do them would be amazing
Mystic Genesis - I can't quite get it to work. It makes the token, but I can't get it to change the token's power and toughness.
- | Open
- Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_SPELL_TO_COUNTER" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_STACK )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local cmc = target:GetConvertedManaCost()
EffectDC():Set_Int( 1, cmc )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:CounterSpell()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():PutTokensOntoBattlefield( "TOKEN_OOZE_0_1_G_909002", 1, EffectController(), EffectDC():Make_Chest(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local TokenPT = EffectDC():Get_Int(1)
local token = EffectDC():Get_Chest(0):Get_CardPtr(0)
if token ~= nil then
local characteristics = token:GetCurrentCharacteristics()
characteristics:Power_Set( TokenPT )
characteristics:Toughness_Set( TokenPT )
end
</RESOLUTION_TIME_ACTION>
Triumph of Ferocity - If someone knows how to do this one easily, that would be awesome. At the moment I'm planning to copy Overwhelming Stampede for myself and then all opponents' creatures and then compare the results.
Zameck Guildmage - I've got its second ability working, but the first ability simply won't trigger no matter how much I mess with it.
- | Open
- Code: Select all
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{G}{U}: This turn, each creature you control enters the battlefield with an additional +1/+1 counter on it.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{G}{U} : Ce tour-ci, chaque créature que vous contrôlez arrive sur le champ de bataille avec un marqueur +1/+1 supplémentaire sur elle.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{G}{U}: Este turno, cada criatura que controlas entra al campo de batalla con un contador +1/+1 adicional sobre ella.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{G}{U}: In diesem Zug kommt jede Kreatur, die du kontrollierst, mit einer zusätzlichen +1/+1-Marke ins Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{G}{U}: In questo turno, ogni creatura che controlli entra nel campo di battaglia con un segnalino +1/+1 addizionale.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{G}{U}:このターン、あなたがコントロールする各クリーチャーは、それぞれ+1/+1カウンターが追加で1個置かれた状態で戦場に出る。{G}{U}, あなたがコントロールするクリーチャー1体の上から+1/+1カウンターを1個取り除く:カードを1枚引く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{G}{U}: 이 턴에, 당신이 조종하는 각 생물은 +1/+1 카운터 한 개를 추가로 가진 채로 전장에 들어온다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{G}{U}: в этом ходу каждое существо под вашим контролем выходит на поле битвы с дополнительным жетоном +1/+1 на нем.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{G}{U}: Neste turno, cada criatura que você controla entra no campo de batalha com um marcador +1/+1 adicional.]]></LOCALISED_TEXT>
<COST mana_cost="{G}{U}" type="Mana" />
<TRIGGERED_EFFECT replacement_effect="1">
<TRIGGER value="ZONECHANGE_TRANSITION" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1">
return (TriggerObject() == EffectDC():Get_CardPtr(0))
</TRIGGER>
<CLEANUP simple_cleanup="EndOfTurn" />
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
if TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) then
TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1)
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_EFFECT>
</ACTIVATED_ABILITY>
- Attachments
-
- Test Cards.zip
- The cards I coded. I hope they work for you!
- (1.46 MiB) Downloaded 275 times
Last edited by Xander9009 on 10 Jul 2013, 00:25, edited 1 time in total.
_______________________________
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 gorem2k » 06 Jul 2013, 02:20
Maybe this:Xander9009 wrote:The Imposing Sovereign is slightly messed up. I couldn't get it to make them enter the battlefield tapped, so it taps them as soon as then enter. This should really only be a problem rarely, possibly creatures with haste and tap abilities. Anyway, if I manage to get it fixed, I'll post it. But I've worked on that in particular far too long haha.
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Creatures your opponents control enter the battlefield tapped.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_TRANSITION" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1">
return TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) and TriggerObject():GetPlayer():GetTeam() ~= EffectSource():GetPlayer():GetTeam()
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():Tap()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
For the token, I will experiment with it... I've just noticed a function called "PutPTTokensOntoBattlefield"
Re: Formal Request Thread
by BloodReyvyn » 06 Jul 2013, 08:25
Cool thread. At least a couple of the functions I needed were already here. One question and some semi-related help though;
Has anyone made a Grandeur card as of yet?
I tried to make Korlash, Heir to Blackblade and I am obviously failing at something since it (a) allows me to discard any card from my hand and (b) acts like it is activating an ability, but nothing happens when it resolves.
On an unrelated note, I was going to try to make Cabal Coffers but I am unsure of how to approach that one. Is there a better way to do this in D14 or am I going to have to make mana tokens to get it to work?
Has anyone made a Grandeur card as of yet?
I tried to make Korlash, Heir to Blackblade and I am obviously failing at something since it (a) allows me to discard any card from my hand and (b) acts like it is activating an ability, but nothing happens when it resolves.
- Korlash, Heir to Blackblade Code | Open
- Code: Select all
<?xml version='1.0'?>
<CARD_V2 ExportVersion="18">
<FILENAME text="KORLASH_HEIR_TO_BLACKBLADE_38136208" />
<CARDNAME text="KORLASH_HEIR_TO_BLACKBLADE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Korlash, Heir to Blackblade]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Korlash, Erede di Blackblade]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Korlash, Erbe der Schwarzklinge]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Korlash, héritier de Lamenoire]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Korlash, heredero de Blackblade]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[黒き剣の継承者コーラシュ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Korlash, Heir to Blackblade]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Корлаш, Наследник Черного Меча]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Korlash, Herdeiro da Espada Sombria]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="38136208" />
<ARTID value="38136208" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{2}{B}{B}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Zombie" order_de-DE="0" order_es-ES="1" order_fr-FR="0" order_it-IT="1" order_jp-JA="0" order_ko-KR="0" order_pt-BR="0" order_ru-RU="0" />
<SUB_TYPE metaname="Warrior" order_de-DE="1" order_es-ES="0" order_fr-FR="1" order_it-IT="0" order_jp-JA="1" order_ko-KR="1" order_pt-BR="1" order_ru-RU="1" />
<EXPANSION value="DPG" />
<RARITY metaname="R" />
<POWER value="*" />
<TOUGHNESS value="*" />
<STATIC_ABILITY filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Korlash, Heir to Blackblade’s power and toughness are each equal to the number of Swamps you control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La forza e la costituzione di Korlash, Erede di Blackblade sono pari al numero di Paludi che controlli.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Stärke und Widerstandskraft von Korlash, Erbe der Schwarzklinge sind gleich der Anzahl der Sümpfe, die du kontrollierst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Korlash, héritier de Lamenoire a une force et une endurance chacune égale au nombre de marais que vous contrôlez.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Korlash, Heir to Blackblade’s power and toughness are each equal to the number of Swamps you control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[黒き剣の継承者コーラシュのパワーとタフネスは、それぞれあなたがコントロールする沼の総数に等しい。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Korlash, Heir to Blackblade’s power and toughness are each equal to the number of Swamps you control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Сила и выносливость Корлаша, Наследника Черного Меча равны количеству Болот под вашим контролем.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[O poder e a resistência de Korlash, Herdeiro da Espada Sombria são iguais ao número de Pântanos que você controla.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="7A">
if EffectSource() ~= nil then
local characteristics = EffectSource():GetCurrentCharacteristics()
local filter = ClearFilter()
filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_SWAMP )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
local total = filter:Count()
characteristics:Power_Set( total )
characteristics:Toughness_Set( total )
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY immunity="1" hint_name="HINT_REGENERATION">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{B}: Regenerate Korlash.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{B}: Rigenera Korlash.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{B}: Regeneriere Korlash.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{B} : Régénérez Korlash.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{B}: Regenerate Korlash.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{B}:黒き剣の継承者コーラシュを再生する。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{B}: Regenerate Korlash.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{B}: Регенерируйте Корлаша.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{B}: Regenere Korlash.]]></LOCALISED_TEXT>
<COST mana_cost="{1}{B}" type="Mana" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():GiveRegeneration()
end
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="declare_blockers" type="window" window_in_combat="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="restriction" restriction_type="no_regeneration_shield" />
<AI_MODIFIERS combat_immunity="1" />
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY auto_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|Grandeur| — Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[|Magnificenza| — Scarta un’altra carta chiamata Korlash, Erede di Blackblade: Passa in rassegna il tuo grimorio per trovare fino a due carte Palude, mettile in gioco TAPpate, poi rimescola il tuo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[|Erhabenheit| — Wirf ein andere Karte namens Korlash, Erbe der Schwarzklinge aus deiner Hand ab: Durchsuche deine Bibliothek nach bis zu zwei Sümpfen, bringe sie getappt ins Spiel und mische deine Bibliothek danach.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[|Majesté| — Défaussez-vous d’une autre carte appelée Korlash, héritier de Lamenoire : Cherchez jusqu’à deux cartes de marais dans votre bibliothèque, mettez-les en jeu engagées et mélangez ensuite votre bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[|Grandeza| — Descartar otra carta llamada Korlash, heredero de Blackblade: Busca en tu biblioteca hasta dos cartas de pantano, ponlas en juego giradas, luego baraja tu biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[壮大 ― 他の「黒き剣の継承者コーラシュ」という名前のカードを1枚捨てる:あなたのライブラリーから最大2枚までの沼カードを探し、それらをタップ状態で場に出し、その後あなたのライブラリーを切り直す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[|Grandeur| — Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[|Сила духа| — Сбросьте другую карту с именем Корлаш, Наследник Черного Меча: Найдите в вашей библиотеке до двух карт Болота, положите их в игру повернутыми, затем перетасуйте вашу библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[|Grandeza| — Descarte outro card chamado Korlash, Herdeiro da Espada Sombria: Em seu grimório, procure no máximo dois cards de Pântano, coloque-os em jogo virados e embaralhe seu grimório.]]></LOCALISED_TEXT>
<COST type="Discard">
<TARGET_DEFINITION id="6">
filter = ClearFilter()
filter:SetZone( ZONE_HAND, EffectController() )
filter:AddCardName( "KORLASH_HEIR_TO_BLACKBLADE" )
</TARGET_DEFINITION>
<TARGET_DETERMINATION>
return AtLeastOneTargetFromDefinition(6)
</TARGET_DETERMINATION>
<PLAYTIME>
EffectController():ChooseTarget( 6, "CARD_QUERY_CHOOSE_CARD_TO_DISCARD", EffectDC():Make_Targets(0) )
</PLAYTIME></COST>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
local effectController = EffectController()
filter:NotTargetted()
filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_SWAMP )
filter:SetZone( ZONE_LIBRARY, effectController)
filter:SetTargets( 2 )
filter:May( 1 )
EffectController:ChooseItem( "CARD_QUERY_CHOOSE_LAND_SWAMP_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target_DC = EffectDC():Get_Targets(0)
local target_card = target_DC:Get_CardPtr(0)
local i = 1
if target_DC ~= nil then
while (target_card ~= nil) do
target_card:PutIntoPlayTapped(EffectController())
target_card = target_DC:Get_CardPtr(i)
i=i+1
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():ShuffleLibrary()
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY step="end_of_turn" turn="their_turn" />
<AI_PLAY_SCORE>
local filter = Object():GetFilter()
filter:Clear()
filter:SetZone( ZONE_HAND )
filter:AddCardName( "KORLASH_HEIR_TO_BLACKBLADE" )
filter:SetPlayer( EffectController() )
if filter:CountStopAt(1) == 1 then
return 1000
else
return 0
end
</AI_PLAY_SCORE>
</ACTIVATED_ABILITY>
<HELP title="MORE_INFO_TITLE_REGENERATE" body="MORE_INFO_BODY_REGENERATE" zone="ZONE_ANY" />
<SFX text="COMBAT_DEATHSWORD_ATTACK" power_boundary_min="-1" power_boundary_max="-1" />
<AI_BASE_SCORE score="600" zone="ZONE_IN_PLAY" />
</CARD_V2>
On an unrelated note, I was going to try to make Cabal Coffers but I am unsure of how to approach that one. Is there a better way to do this in D14 or am I going to have to make mana tokens to get it to work?
"There's an experience worse than blindness - it's the certainty that your vision is perfect and the horror that there's no world around you to see."
-
BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Who is online
Users browsing this forum: No registered users and 33 guests