It is currently 19 Jul 2025, 10:49
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby Real » 28 Dec 2013, 23:34

So, can anyone help?
The following code is what I have.

For Incandescent Soulstoke, the problem is giving the creature haste and sacrifice it at the end step.

As for the Thunderblust, the problem is giving it trample while it has the counter.

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="INCANDESCENT_SOULSTOKE_139730" />
   <CARDNAME text="INCANDESCENT_SOULSTOKE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Incandescent Soulstoke]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chauffeur d'âme incandescent]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Atiza alma incandescente]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Weißglühender Seelenverheizer]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Attizza Anima Incandescente]]></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[Carvalma Incandescente]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="139730" />
   <ARTID value="A139730" />
   <ARTIST name="Todd Lockwood" />
   <CASTING_COST cost="{2}{R}" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Elemental" />
   <SUB_TYPE metaname="Shaman" />
   <EXPANSION value="PD2" />
   <RARITY metaname="R" />
   <POWER value="2" />
   <TOUGHNESS value="2" />
   <STATIC_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Other Elemental creatures you control get +1/+1.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les autres créatures Élémental que vous contrôlez gagnent +1/+1.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las otras criaturas Elemental que controlas obtienen +1/+1.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Andere Elementarwesenkreaturen, die du kontrollierst, erhalten +1/+1.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le altre creature Spiritello che controlli prendono +1/+1.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールする他のエレメンタル・クリーチャーは+1/+1の修整を受ける。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[由你操控的其它元素生物得+1/+1。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Другие существа-Элементали под вашим контролем получают +1/+1.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As outras criaturas do tipo Elemental que você controla recebem +1/+1.]]></LOCALISED_TEXT>
      <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_ELEMENTAL )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    </FILTER>
      <CONTINUOUS_ACTION layer="7C" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:Power_Add( 1 )
       characteristics:Toughness_Add( 1 )
    end
    </CONTINUOUS_ACTION>
   <ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{R}, {T}: You may put an Elemental creature card from your hand onto the battlefield. That creature gains haste until end of turn. Sacrifice it at the beginning of the next end step.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{R}, {T}: Vous pouvez mettre en jeu une carte de créature d'élémental de votre main. Cette créature acquiert la célérité jusqu'à la fin du tour. Sacrifiez-la à la fin du tour.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{R}, {T}: Puedes poner en juego una carta de criatura Elemental de tu mano. Esa criatura gana la habilidad de prisa hasta el final del turno. Sacrifícala al final del turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{R}, {T}: Du kannst eine Elementarwesenkreaturenkarte aus deiner Hand ins Spiel bringen. Diese Kreatur erhält Eile bis zum Ende des Zuges. Opfere sie am Ende des Zuges.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{R}, {T}: Puoi mettere in gioco una carta creatura Elementale dalla tua mano. Quella creatura ha rapidità fino alla fine del turno. Sacrificala alla fine del turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{R}, {T}: あなたは自分の手札にあるエレメンタル・クリーチャー・カードを1枚場に出してもよい。 そのクリーチャーはターン終了時まで速攻を得る。 ターン終了時にそれを生け贄に捧げる。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{R}, {T}: 你可以将一张元素生物牌从你手上放置进场。 该生物获得敏捷异能直到回合结束。 在回合结束时将之牺牲。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{R}, {T}: Вы можете положить карту существа-Элементаля из вашей руки в игру. То существо получает Ускорение до конца хода. В конце хода пожертвуйте его.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{R}, {T}: Você pode colocar um card de criatura do tipo Elemental da sua mão em jogo. Aquela criatura ganha ímpeto até o final do turno. Sacrifique-a no final do turno.]]></LOCALISED_TEXT>
      <COST mana_cost="{1}{R}" type="Mana" />
      <COST type="TapSelf" />
      <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_ELEMENTAL )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_HAND, EffectController() )
    EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:PutOntoBattlefield( EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <SFX text="COMBAT_FLAME_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_FLAME_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
   <AI_BASE_SCORE score="150" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="THUNDERBLUST_157411" />
   <CARDNAME text="THUNDERBLUST" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Thunderblust]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ragefoudre]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Trueno voraz]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Donnerpolterer]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fulminafuria]]></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[Tormenta Relampejante]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="157411" />
   <ARTID value="A157411" />
   <ARTIST name="Dan Scott" />
   <CASTING_COST cost="{2}{R}{R}{R}" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Elemental" />
   <EXPANSION value="PD2" />
   <RARITY metaname="R" />
   <POWER value="7" />
   <TOUGHNESS value="2" />
   <STATIC_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Haste]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Célérité]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Prisa.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Eile]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rapidità]]></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[Ímpeto]]></LOCALISED_TEXT>
      <INTRINSIC characteristic="CHARACTERISTIC_HASTE" />
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Persist]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Persistance]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Persistir.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Beharrlichkeit]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Persistere]]></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[Persistir]]></LOCALISED_TEXT>
      <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD" />
      <INTERVENING_IF ignore_resolution_check="1">
    if TriggerObject():CountCounters(MTG():MinusOneMinusOneCounters()) == 0 then
       return true
    else
       return false
    end
    </INTERVENING_IF>
      <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
       EffectDC():Protect_CardPtr( COMPARTMENT_ID_PARAM_TRIGGER_OBJECT )
       TriggerObject():PutOntoBattlefield( TriggerObject():GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
       TriggerObject():AddCounters( MTG():MinusOneMinusOneCounters(), 1)
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <SFX text="COMBAT_LIGHTNING_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_LIGHTNING_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Real
 
Posts: 19
Joined: 12 Aug 2013, 16:23
Has thanked: 2 times
Been thanked: 0 time

Re: Formal Request Thread

Postby drleg3nd » 28 Dec 2013, 23:46

ok just tested card, 2nd ability can be done more than once a turn, last ability removes counter but nothing happens but special effects..
Kiora | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="2">
  <FILENAME text="KIORA,_THE_CRASHING_WAVE_812195297" />
  <CARDNAME text="KIORA,_THE_CRASHING_WAVE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="812195297" />
  <ARTID value="812195297" />
  <ARTIST name="Scott M Fischer" />
  <CASTING_COST cost="{2}{G}{U}" />
  <TYPE metaname="Planeswalker" />
  <TYPE metaname="Enchantment" />
  <SUB_TYPE metaname="Kiora" />
  <EXPANSION value="WWK" />
  <RARITY metaname="M" />
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|(Loyalty 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[|(Loyauté 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[|(Lealtad 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[|(Loyalität 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[|(Fedeltà 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[(忠誠 2)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[|(충성 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[|(Верность 2)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[|(Lealdade 2)|]]></LOCALISED_TEXT>
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():AddCounters( MTG():GetCountersType("Loyalty"), 2 )
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
    <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(+1): Until your next turn, prevent all damage that would be dealt to and dealt by target permanent an opponent controls.]]></LOCALISED_TEXT>
    <AVAILABILITY sorcery_time="1" per_turn_limit="1" />
    <COST type="generic">
      <PREREQUISITE>
      return true
      </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
      if EffectSource() ~= nil then
         PLW_ShutDownDoublingSeason()
         EffectSource():AddCounters( MTG():GetCountersType("Loyalty"), 1 )
      end
      </RESOLUTION_TIME_ACTION>
    </COST>
    <TARGET tag="CARD_QUERY_CHOOSE_PERMANENT_AN_OPPONENT_CONTROLS" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
    PLW_FilterPermanents(filter)
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION>
    EffectDC():Set_Int( 1, MTG():GetTurnNumber() )
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="8">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local characteristics = target:GetCurrentCharacteristics()
       characteristics:Bool_Set(CHARACTERISTIC_DOESNT_RECEIVE_DAMAGE, 1)
       characteristics:Bool_Set(CHARACTERISTIC_DOESNT_DEAL_DAMAGE, 1)
    end
    </CONTINUOUS_ACTION>
    <DURATION>
    return EffectDC():Get_Targets(0):Get_CardPtr(0) == nil or PLW_UntilMyNextTurn( EffectDC():Get_Int(1) )
    </DURATION>
    <SFX text="TARGET_PLASMA_PLAY" />
  </ACTIVATED_ABILITY>


  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(-1): Draw a card, You may play an additional land this turn.]]></LOCALISED_TEXT>
    <AVAILABILITY sorcery_time="1" per_turn_limit="1" />
    <COST type="RemoveCountersSelf" amount="1" counter_type="Loyalty" />
    <RESOLUTION_TIME_ACTION>
    EffectController():DrawCards(1)
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="8">
    local player_characteristics = EffectController():GetCurrentCharacteristics()
    player_characteristics:Int_Increment( PLAYER_INTCHARACTERISTIC_EXTRA_LAND_DROPS )
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </ACTIVATED_ABILITY>



    <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(-5): You get an emblem with “At the beginning of your end step, put a 9/9 blue Kraken creature token onto the battlefield.”]]></LOCALISED_TEXT>
    <AVAILABILITY sorcery_time="1" per_turn_limit="1" />
    <COST type="RemoveCountersSelf" amount="5" counter_type="Loyalty" />
    <RESOLUTION_TIME_ACTION>
    MTG():CreateDelayedTrigger(1, nil)
    </RESOLUTION_TIME_ACTION>
    <SFX text="GLOBAL_TIDE_PLAY" />
  </ACTIVATED_ABILITY>
  <TRIGGERED_ABILITY resource_id="1">
    <CLEANUP>
    return EffectController() == nil
    </CLEANUP>
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    MTG():PutTokensOntoBattlefield( "812082656", 1, EffectController() )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TOKEN_REGISTRATION reservation="1" type="812082656" />

  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY">
    <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    PLW_CreateUniqueToken( "_PLANESWALKERS_MANAGER_991800002", "_PLANESWALKERS_MANAGER", EffectController() )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TOKEN_REGISTRATION reservation="1" type="_PLANESWALKERS_MANAGER_991800002" />

  <AI_COUNTER_SCORE type="Loyalty" score="100" />
  <AI_BASE_SCORE score="600" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Formal Request Thread

Postby thefiremind » 29 Dec 2013, 00:18

Real wrote:For Incandescent Soulstoke, the problem is giving the creature haste and sacrifice it at the end step.
Isn't it the same as Sneak Attack, which is an official card? Just copy Sneak Attack and change the filter so that it only accepts Elemental creatures.
EDIT: Now that I look at it more carefully, there's a little difference: Incandescent Soulstoke grants haste only until end of turn. This actually shouldn't be a problem in DotP2014 since the only way to maintain haste after the end of turn would be to counter the sacrifice trigger which is impossible in DotP... but if you really want to be precise, change
Code: Select all
    <DURATION>
    return (EffectSource() == nil)
    </DURATION>
with a classic
Code: Select all
    <DURATION simple_duration="UntilEOT" />
and you are set.

Real wrote:As for the Thunderblust, the problem is giving it trample while it has the counter.
Code: Select all
    <CONTINUOUS_ACTION layer="6">
    if EffectSource() ~= nil and EffectSource():CountCounters( MTG():MinusOneMinusOneCounters() ) &gt; 0 then
       EffectSource():GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_TRAMPLE, 1)
    end
    </CONTINUOUS_ACTION>
"If I have more than 0 -1/-1 counters, then give myself trample". Simple as that. :wink:

drleg3nd wrote:2nd ability can be done more than once a turn
If you mean that each ability doesn't exclude the other ones for the same turn when used, then you didn't properly add Kiora as a known Planeswalker. You have a comma in FILENAME and CARDNAME, maybe you didn't put it in the LOL file, I'd suggest to remove it from the name rather than adding it to the LOL file (punctuation in FILENAME and CARDNAME is allowed but it's a bad habit if you want coherence with the official cards). Remember to remove it from the actual file name as well.

drleg3nd wrote:last ability removes counter but nothing happens but special effects..
If you called your token TOKEN_KRAKEN_9_9_U_812082656, then you must write all of that in the code, not just the Multiverse ID. All the other cards that produce tokens should serve as example for that.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: Formal Request Thread

Postby Real » 29 Dec 2013, 03:31

Thanks TFM!
For those who may be interested in these two cards
Attachments
Elemental.zip
(858.29 KiB) Downloaded 288 times
Real
 
Posts: 19
Joined: 12 Aug 2013, 16:23
Has thanked: 2 times
Been thanked: 0 time

Re: Formal Request Thread

Postby RiiakShiNal » 29 Dec 2013, 14:58

NeoAnderson wrote:About Ring of Ma'ruf so Exile zone is not out of game and what about ZONE_CEASED_TO_EXIST ? What does means this zone? Is there some cards who are using that zone?
ZONE_CEASED_TO_EXIST is used for tokens that are no longer on the battlefield and spell copies that are no longer on the stack, since they have "ceased to exist" they don't exist and thus can't be recalled by Ring of Ma'ruf because you can't "own" what doesn't exist. As far as I know there are no cards that explicitly use that zone because nothing in that zone actually "exists" and I doubt it would work properly if a card actually tried to use it.

What Ring of Ma'ruf actually does is allows you to bring a card from your collection (that was not used in the deck, though in tournaments it would most likely be limited to your sideboard) and put that card in your hand (the next time that turn that you would draw a card) to use in the game. The DotP engine does not allow us to access any cards not in the decks that were brought into the match other than registered tokens (as they aren't loaded) so Ring of Ma'ruf is completely impossible to code.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby Orangewaggs » 29 Dec 2013, 16:01

Is it possible that someone could code Zur-Taa Druid.
Please and thank you
User avatar
Orangewaggs
 
Posts: 17
Joined: 18 Dec 2013, 23:39
Has thanked: 8 times
Been thanked: 0 time

Re: Formal Request Thread

Postby NeoAnderson » 29 Dec 2013, 16:24

RiiakShiNal wrote:ZONE_CEASED_TO_EXIST is used for tokens that are no longer on the battlefield and spell copies that are no longer on the stack, since they have "ceased to exist" they don't exist and thus can't be recalled by Ring of Ma'ruf because you can't "own" what doesn't exist. As far as I know there are no cards that explicitly use that zone because nothing in that zone actually "exists" and I doubt it would work properly if a card actually tried to use it.

What Ring of Ma'ruf actually does is allows you to bring a card from your collection (that was not used in the deck, though in tournaments it would most likely be limited to your sideboard) and put that card in your hand (the next time that turn that you would draw a card) to use in the game. The DotP engine does not allow us to access any cards not in the decks that were brought into the match other than registered tokens (as they aren't loaded) so Ring of Ma'ruf is completely impossible to code.
Thanks Riiak, i was wondering about the meaning of this ZONE now is clear.

I have another silly question.
When we have a card with an Activable ability available only during the upkeep, how can we activate it if the game autoskip the upkeep step?
I mean if we don't have any trigger this step will not give us possibility to interact.
To avoid this problem i am using an empty trigger for these kind of cards, so while the card is triggering we can activate the ability, but i would know if there is something i am missing, because this is a way to walk around the problem, but probably i am missing something more clean and simple, like some to change into game settings?
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 29 Dec 2013, 19:30

NeoAnderson wrote:I have another silly question.
When we have a card with an Activable ability available only during the upkeep, how can we activate it if the game autoskip the upkeep step?
I mean if we don't have any trigger this step will not give us possibility to interact.
To avoid this problem i am using an empty trigger for these kind of cards, so while the card is triggering we can activate the ability, but i would know if there is something i am missing, because this is a way to walk around the problem, but probably i am missing something more clean and simple, like some to change into game settings?
Yea I think a trigger with an empty Resolution time action is the only way for the game to give you time during the upkeep. I know you said you already have something working but you could do something like Kev did for Eternal Dragon or you could use the invisible token manager thefiremind has posted here:

Eternal Dragon Upkeep Trigger | Open
Code: Select all
<TRIGGERED_ABILITY active_zone="ZONE_GRAVEYARD" priority="-10">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
local player = EffectController()
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, player )
filter:Add( FE_CARD_NAME, OP_IS, "ETERNAL_DRAGON" )
if filter:EvaluateObjects() &gt; 0 then
    if EffectSource() == filter:GetNthEvaluatedObject(0) then
      return ( MTG():GetStep() == STEP_UPKEEP ) and ( player:CanPayManaCost("{3}{W}{W}") )
    end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION />
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby NeoAnderson » 29 Dec 2013, 20:00

MC Brodie wrote:
NeoAnderson wrote:I have another silly question.
When we have a card with an Activable ability available only during the upkeep, how can we activate it if the game autoskip the upkeep step?
I mean if we don't have any trigger this step will not give us possibility to interact.
To avoid this problem i am using an empty trigger for these kind of cards, so while the card is triggering we can activate the ability, but i would know if there is something i am missing, because this is a way to walk around the problem, but probably i am missing something more clean and simple, like some to change into game settings?
Yea I think a trigger with an empty Resolution time action is the only way for the game to give you time during the upkeep. I know you said you already have something working but you could do something like Kev did for Eternal Dragon or you could use the invisible token manager thefiremind has posted here:

Eternal Dragon Upkeep Trigger | Open
Code: Select all
<TRIGGERED_ABILITY active_zone="ZONE_GRAVEYARD" priority="-10">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
local player = EffectController()
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, player )
filter:Add( FE_CARD_NAME, OP_IS, "ETERNAL_DRAGON" )
if filter:EvaluateObjects() &gt; 0 then
    if EffectSource() == filter:GetNthEvaluatedObject(0) then
      return ( MTG():GetStep() == STEP_UPKEEP ) and ( player:CanPayManaCost("{3}{W}{W}") )
    end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION />
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
Thanks my friend,
I already know i can set some check into upkeep trigger, and generally i used to add these checks when there is something to check, but sometimes we have cards that doesn't need to check anything, so in that case i just let them trigger always during my upkeep.
CanPayManaCost, is ok but there is a problem with manual mana cards, this means that you should add the mana before the check the mana availability, and this give you few seconds to do it.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 29 Dec 2013, 23:12

I'm sorry I'm having another one of those brain failure moments and I cannot figure out what I'm doing wrong. I am trying to code the activated ability of Deadeye Navigator and I cannot get the exiled card to return to the battlefield. I am the worst with these types of cards that require exiling and returning to the battlefield. Here is what I have.

Deadeye Navigator | Open
Code: Select all
  <ACTIVATED_ABILITY resource_id="0">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}: Exile this creature, then return it to the battlefield under your control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}: Exilez cette créature, puis renvoyez-la sur le champ de bataille sous votre contrôle.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}: Exilia a esta criatura, luego regrésala al campo de batalla bajo tu control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}: Schicke diese Kreatur ins Exil und bringe sie dann unter deiner Kontrolle ins Spiel zurück.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}: Esilia questa creatura, poi rimettila sul campo di battaglia sotto il tuo controllo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}: あなたはこのクリーチャーを追放し、その後それをあなたのコントロール下で戦場に戻す」を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}: 이 생물을 추방한 후 당신의 조종하에 전장으로 되돌린다”라는 능력을 갖는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}: изгоните это существо, затем верните его на поле битвы под вашим контролем.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}: Exile esta criatura e depois a devolva ao campo de batalha sob o seu controle.]]></LOCALISED_TEXT>
   <COST mana_cost="{1}" type="Mana" />
   <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectDC():Set_CardPtr( 0, EffectSource() )
      EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
       EffectSource():Exile()
    end
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
    local creature = EffectDC():Get_CardPtr(0)
    if creature ~= nil then
       creature:PutOntoBattlefield( EffectController() )
    end 
    </RESOLUTION_TIME_ACTION>
   <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
   <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
   <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
   <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
   <AI_AVAILABILITY type="in_response" response_source="1" />
   <AI_AVAILABILITY type="in_response" response_target="1" />
  </ACTIVATED_ABILITY>
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby NeoAnderson » 29 Dec 2013, 23:51

MC Brodie wrote:I'm sorry I'm having another one of those brain failure moments and I cannot figure out what I'm doing wrong. I am trying to code the activated ability of Deadeye Navigator and I cannot get the exiled card to return to the battlefield. I am the worst with these types of cards that require exiling and returning to the battlefield. Here is what I have.

Deadeye Navigator | Open
Code: Select all
  <ACTIVATED_ABILITY resource_id="0">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}: Exile this creature, then return it to the battlefield under your control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}: Exilez cette créature, puis renvoyez-la sur le champ de bataille sous votre contrôle.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}: Exilia a esta criatura, luego regrésala al campo de batalla bajo tu control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}: Schicke diese Kreatur ins Exil und bringe sie dann unter deiner Kontrolle ins Spiel zurück.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}: Esilia questa creatura, poi rimettila sul campo di battaglia sotto il tuo controllo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}: あなたはこのクリーチャーを追放し、その後それをあなたのコントロール下で戦場に戻す」を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}: 이 생물을 추방한 후 당신의 조종하에 전장으로 되돌린다”라는 능력을 갖는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}: изгоните это существо, затем верните его на поле битвы под вашим контролем.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}: Exile esta criatura e depois a devolva ao campo de batalha sob o seu controle.]]></LOCALISED_TEXT>
   <COST mana_cost="{1}" type="Mana" />
   <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectDC():Set_CardPtr( 0, EffectSource() )
      EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
       EffectSource():Exile()
    end
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
    local creature = EffectDC():Get_CardPtr(0)
    if creature ~= nil then
       creature:PutOntoBattlefield( EffectController() )
    end 
    </RESOLUTION_TIME_ACTION>
   <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
   <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
   <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
   <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
   <AI_AVAILABILITY type="in_response" response_source="1" />
   <AI_AVAILABILITY type="in_response" response_target="1" />
  </ACTIVATED_ABILITY>
The issue is about the follow line :
Code: Select all
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
You have to change it with :
Code: Select all
EffectDC():Protect_CardPtr(0)
Because you are protecting the pointer to EffectSource(), but you are calling that card through the pointer you have stored into EffectDC. So you have to protect that pointer (0).

If you want to to keep the code :
Code: Select all
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
You have to change the code as the follow :

Code: Select all
 <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
       EffectSource():Exile()
    end
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
    local creature = EffectSource()
    if creature ~= nil then
       creature:PutOntoBattlefield( EffectController() )
    end 
    </RESOLUTION_TIME_ACTION>
As you can see you no longer need the line in the first resolution
Code: Select all
EffectDC():Set_CardPtr( 0, EffectSource() )
Because EffectSource() is a function that return the pointer to the object() if you protect this pointer is not need to store it into another variable.

And in the second resolution you will refer to the card using normally EffectSource() instead of EffectDC().

Anyway as you coded you will not see any effect, the card seems to remain on the battlefield, because the zone change is to fast.
You will understand that it has gained again the summon sickness this means that has left the battlefield and then is returned.
Last edited by NeoAnderson on 30 Dec 2013, 00:04, edited 1 time in total.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 30 Dec 2013, 00:04

Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?


Now that I see your edited post that helps a lot. Thank you! As I said, I cannot stand these cards that need to save information in chests across zone transitions.
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby NeoAnderson » 30 Dec 2013, 00:17

MC Brodie wrote:Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?


Now that I see your edited post that helps a lot. Thank you! As I said, I cannot stand these cards that need to save information in chests across zone transitions.
You're welcome my friend, unfortunatelly i am not a programmer, so for detailed explainations you should wait for Riiak TheFireMind or Sumomole.
About your last question about Ætherling, if you are talking about the TheFireMind version, inside the first resolution block he has protected the EffectSource pointer and exiled the creature, then in the second Resolution after checked that the EffectSource is not nil, he saved into a DelayedDC to create the delayed trigger.
If you read the rule of the card :
"Ætherling's first ability will return it to the battlefield only if that ability also exiled it. If Ætherling left the battlefield in response to that ability, it won't return, even if it was exiled by another spell or ability."
This could explain this solution, if something counter the ability the delayed trigger doesn't have to be created.

Anyway coding the same card could have many different way, not only one.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby thefiremind » 30 Dec 2013, 00:25

MC Brodie wrote:Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?
Well, because AEtherling exiles itself, so the specific card pointer is the EffectSource pointer. :mrgreen: You are making a useless action in saving EffectSource to a different register: just protect it and then retrieve it directly. If you save it to a different register, and you plan on retrieving it from there, then that's the register that needs to be protected.

EDIT: I started to write this post before NeoAnderson's edit (yeah I have been slow :oops:), so it may be no longer useful. I'll leave it anyway, just in case.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: Formal Request Thread

Postby NeoAnderson » 30 Dec 2013, 01:03

thefiremind wrote:
MC Brodie wrote:Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?
Well, because AEtherling exiles itself, so the specific card pointer is the EffectSource pointer. :mrgreen: You are making a useless action in saving EffectSource to a different register: just protect it and then retrieve it directly. If you save it to a different register, and you plan on retrieving it from there, then that's the register that needs to be protected.

EDIT: I started to write this post before NeoAnderson's edit (yeah I have been slow :oops:), so it may be no longer useful. I'll leave it anyway, just in case.
You are going forward with the age my friend! :lol:
I am joking all i have learned here is thanks to you, Riaak, and Sumomole.

Hey i have made this topic :
http://www.slightlymagic.net/forum/viewtopic.php?f=109&t=13096

Could someone of you check the list of the card i have not coded and let me know if someone could be coded?
Probably just 2 with some compromises (Metamorphosis as i discussed with Riiak) and (Nafs Asp if we decide how the player affected can pay anytime to prevent the damage)

I also have a question :
Now i am coding Antiquities Set, the card Primal Clay, the normal ability of this card is easy to code but i have a doubt about these additional Rules :
7/1/2012: If another permanent enters the battlefield as a copy of Primal Clay, the controller of that permanent will get to make a new choice. The copy won't necessarily have the same power, toughness, and abilities as the original.
7/1/2012: If a creature that's already on the battlefield becomes a copy of Primal Clay, it copies the power, toughness, and abilities that were chosen for Primal Clay when it entered the battlefield.


Honestly i can't figure a way to retrieve information when a spell is copying the card.
I could check when it BECAME_TARGET_OF_SPELL or ABILITY but not when its values are copied.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 4 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 4 users online :: 0 registered, 0 hidden and 4 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 4 guests

Login Form