It is currently 19 Jun 2019, 08:56
   
Text Size

Formal Request Thread

Moderators: Xander9009, CCGHQ Admins

Formal Request Thread

Postby Master Necro » 02 Jul 2013, 19:33

I know we have the card request thread but it is GIGANTIC and this could be more of a code base thread and I will update the first post with new additions so the wanted code or card can be easily found. :)

To start I would like to request a whole :twisted: :twisted: :twisted: kload of codes :mrgreen: and this is a looooong term request since everyone is learning but I just want to put it out there. :)

Haunt
Unleash
Graft


also transform cards would be nice. :)

Codes:

1. Hellbent:

| Open
Availability:

Code: Select all
EffectController():Hand_Count() == 0
and then write what the card does when you have 0 cards in your hand.

Disclamer: It won't be always a trigger: for example, Demon's Jester's hellbent keyword is on a static ability, while Nihilistic Glee uses the hellbent condition as an availability condition for the activated ability. Jagged Poppet has a trigger but it has an intervening if, so the check will need to be inserted into the new <INTERVENING_IF>...</INTERVENING_IF> block.
2. Scavenge:

| Open
Code: Select all
   <ACTIVATED_ABILITY active_zone="ZONE_GRAVEYARD">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Scavenge {$TextValue$} |(|{$TextValue$}|, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Récupération {$TextValue$} |(|{$TextValue$}|, exilez cette carte de votre cimetière : Mettez un nombre de marqueurs +1/+1 égal à la force de cette carte sur une créature ciblée. Ne récupérez que lorsque vous pourriez lancer un rituel.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Carroñar {$TextValue$}. |(|{$TextValue$}|, exiliar esta carta de tu cementerio: Pon sobre la criatura objetivo una cantidad de contadores +1/+1 igual a la fuerza de esta carta. Activa la habilidad de carroñar como un conjuro.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ausplündern {$TextValue$} |(|{$TextValue$}|, schicke diese Karte aus deinem Friedhof ins Exil: Lege so viele +1/+1-Marken, wie die Stärke dieser Karte beträgt, auf eine Kreatur deiner Wahl. Spiele Ausplündern wie eine Hexerei.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mangiacarogne {$TextValue$} |(|{$TextValue$}|, Esilia questa carta dal tuo cimitero: Metti un numero di segnalini +1/+1 pari alla forza di questa carta su una creatura bersaglio. Attiva mangiacarogne solo quando potresti lanciare una stregoneria.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[活用 {$TextValue$} |(|{$TextValue$}|, このカードをあなたの墓地から追放する:クリーチャー1体を対象とし、それの上にこのカードのパワーに等しい数の+1/+1カウンターを置く。活用はソーサリーとしてのみ行う。)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[섭취 {$TextValue$} |(|{$TextValue$}|, 당신의 무덤에서 이 카드를 추방한다: 생물 한 개를 목표로 정한다. 이 카드의 공격력만큼의 +1/+1 카운터를 그 생물에 올려놓는다. 당신이 집중마법을 발동할 수 있는 시기에만 섭취 능력을 활성화할 수 있다.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Утилизация {$TextValue$} |(|{$TextValue$}|, изгоните эту карту из вашего кладбища: положите на целевое существо жетоны +1/+1, количество которых равно силе этой карты. Утилизируйте только как волшебство.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Necrofagia {$TextValue$} |(|{$TextValue$}|, Exile este card de seu cemitério: Coloque uma quantidade de marcadores +1/+1 igual ao poder deste card na criatura alvo. Use necrofagia somente quando puder conjurar um feitiço.)|]]></LOCALISED_TEXT>
      <COST type="Mana" mana_cost="{$Value$}" />
      <COST type="ExileSelf" />
      <AVAILABILITY sorcery_time="1" />
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_PLUS1_PLUS1_COUNTER" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
         local oTarget = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if (oTarget ~= nil) then
            oTarget:AddCounters( MTG():PlusOnePlusOneCounters(), Object():GetCurrentCharacteristics():Power_Get() )
         end
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
{$TextValue$} needs to be replaced with the localized text equivalent of the scavenge cost and {$Value$} needs to be replaced with the scavenge cost. So if you have Scavenge {B/G} then {$TextValue$} would be {a} and {$Value$} would be {B/G}.


3. "X creatures attack each turn if able." Where X is creature type (Goblin, Beast...)

| Open
Code: Select all
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Xtype creatures attacks each turn if able.]]></LOCALISED_TEXT>
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_Xtype )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    </FILTER>
    <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:Bool_Set( CHARACTERISTIC_MUST_ATTACK_EACH_TURN, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
And just replace Xtype with the creature type you want.


4. Dredge:

| Open
Code: Select all
  <TRIGGERED_ABILITY replacement_query="1" active_zone="ZONE_GRAVEYARD">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Dredge N]]></LOCALISED_TEXT>
    <TRIGGER value="DREW_CARD" simple_qualifier="controller" pre_trigger="1">
    if DredgeAbilityTrigger(EffectController()) then
       MTG():OverrideEvent()
      return true
    end
    return false   
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    DredgeAbilityChoice(EffectController())
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    DredgeAbilityResolve(EffectController())
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    DredgeAbilityDraw(EffectController())
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
N should be replaced by the number you need.

LOL file:

[spoiler=DREDGE_62.LOL]
Code: Select all
PLAYER_UTILITY_COMPARTMENT_ID_DREDGE = -2627

DredgeCardAndValue = function(object)
  local amount = 0
  if object:GetCardName() == "GRAVESHELL_SCARAB" then
    amount = 1
  elseif object:GetCardName() == "DAKMOR_SALVAGE" or object:GetCardName() == "GOLGARI_BROWNSCALE" or object:GetCardName() == "MOLDERVINE_CLOAK" or object:GetCardName() == "NECROPLASM" or object:GetCardName() == "NIGHTMARE_VOID" then
    amount = 2
  elseif object:GetCardName() == "DARKBLAST" or object:GetCardName() == "GREATER_MOSSDOG" or object:GetCardName() == "LIFE_FROM_THE_LOAM" or object:GetCardName() == "SHAMBLING_SHELL" then
    amount = 3
  elseif object:GetCardName() == "GOLGARI_THUG" then
    amount = 4
  elseif object:GetCardName() == "STINKWEED_IMP" then
    amount = 5
  elseif object:GetCardName() == "GOLGARI_GRAVETROLL" then
    amount = 6
  end
  return amount
end

DredgeAbilityTrigger = function(player)
  local serial_obj = 0
  local serial_so = 1000
  local filter = ClearFilter()
  filter:SetZone( ZONE_GRAVEYARD, player )
  local total = filter:EvaluateObjects()
  if total > 0 then
    for i=0,total-1 do
      local card = filter:GetNthEvaluatedObject(i)
       if card ~= nil and DredgeCardAndValue(card) > 0 then
         if card == Object() then
           serial_obj = i
         elseif serial_so > i then
           serial_so = i
         end
       end
    end
  end
  if serial_so > serial_obj and player:PlayerDataChest():Int_Get( PLAYER_UTILITY_COMPARTMENT_ID_DREDGE ) == 0 then
    return true
  end
  return false
end

DredgeAbilityChoice = function(player)
  MTG():ClearFilterMark()
  local filter = ClearFilter()
  filter:SetZone( ZONE_GRAVEYARD, EffectController() )
  local total = filter:EvaluateObjects()
  if total > 0 then
    for i=0,total-1 do
      local card = filter:GetNthEvaluatedObject(i)
      if card ~= nil and DredgeCardAndValue(card) > 0 then
         card:MarkForFilter()
      end
    end          
  end
  filter:SetMarkedObjectsOnly()
  player:ChooseItem( "CARD_QUERY_CHOOSE_A_CARD_TO_RETURN_TO_YOUR_HAND", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
end

DredgeAbilityResolve = function(player)
  local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
  if target ~= nil then
    local dredge_value = DredgeCardAndValue(target)
    target:PutInHand()
    player:MillCards( dredge_value )
  else
    player:PlayerDataChest():Int_Set( PLAYER_UTILITY_COMPARTMENT_ID_DREDGE, 1 )
  end
end

DredgeAbilityDraw = function(player)
  if player:PlayerDataChest():Int_Get( PLAYER_UTILITY_COMPARTMENT_ID_DREDGE ) == 1 then
    player:DrawCard()
    player:PlayerDataChest():Int_Set( PLAYER_UTILITY_COMPARTMENT_ID_DREDGE, 0 )
  end
end
[/spoiler]

5. Retrace:

| Open
<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 then
if FilteredCard():GetColour():TestAny(target:GetColour()) then
return true
else
return false
end
else
return false
end
</FILTER_CONDITION>
<RESOLUTION_TIME_ACTION filter_id="0">
if FilteredCard() ~= nil then
EffectSourceLKI():DealDamageTo( GetEffectX(), FilteredCard() )
end
</RESOLUTION_TIME_ACTION>


6. Hideaway:

| Open
Code: Select all
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Hideaway]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1" />
    <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
      TriggerObject():Tap()
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY linked_ability_group="1">
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
    <RESOLUTION_TIME_ACTION>
    local i = 0
    local queryDC = EffectDC():Make_Chest(1)
    for i = 0,(3) do
       local card = EffectController():Library_GetNth( i )
       if card ~= nil then
          queryDC:Set_CardPtr(i, card)
       end
    end
    EffectController():ChooseItemFromDC( "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FACE_DOWN", queryDC, EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    local source = EffectSource()
    if target ~= nil then
      if source ~= nil then
         LinkedDC():Set_CardPtr(0, target)
         LinkedDC():Protect_CardPtr(0)
      end
       target:ExileFaceDown()
    end
    for i = 0,(3) do
       local card = EffectDC():Get_Chest(1):Get_CardPtr(i)
       if card ~= nil then
          card:PutOnBottomOfLibrary()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = LinkedDC():Get_CardPtr(0)
    local source = EffectSource()
    if target ~= nil and source ~= nil then
       target:NailOnto(source)
    end
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="8">
    local target = LinkedDC():Get_CardPtr(0)
    local source = EffectSource()
    if target ~= nil and source ~= nil then
       local characteristics = target:GetCurrentCharacteristics()
       characteristics:CanLookAtWhileFaceDown( source:GetPlayer() )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
    return (LinkedDC():Get_CardPtr(0) == nil or EffectSource() == nil)
    </DURATION>
    <AUTO_SKIP no_effect_source="1" />
  </TRIGGERED_ABILITY>
  <ACTIVATED_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{U}, {T}: You may play the exiled card without paying its mana cost if a library has twenty or fewer cards in it.]]></LOCALISED_TEXT>
    <COST mana_cost="{U}" type="Mana" />
    <COST type="TapSelf" />
    <AVAILABILITY>
    return EffectController():CanPayManaCost("{U}{U}")
    </AVAILABILITY>
    <RESOLUTION_TIME_ACTION>
    local spellToCast = LinkedDC():Get_CardPtr(0)
    if spellToCast ~= nil and EffectController():CanCastSpellForFree( spellToCast ) then
      local num_Players = MTG():GetNumberOfPlayers()
       for i = 0, (num_Players-1) do
          local player = MTG():GetNthPlayer(i)
        if player ~= nil and player:Library_Count() &lt; 21 then
          EffectController():CastSpellForFree(spellToCast)
          break
        end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <MAY />
  </ACTIVATED_ABILITY>
7. Madness:

| Open
Code: Select all
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Madness {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Folie {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Demencia {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wahnsinn {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Follia {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[マッドネス {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Madness {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Бешенство {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Loucura {B}]]></LOCALISED_TEXT>
    <TRIGGER value="DISCARD" simple_qualifier="self" pre_trigger="1">
    if EffectController():CanCastSpellUsingResourceCost( TriggerObject(), 0 ) then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr( 0, TriggerObject() )
       MTG():CreateDelayedTrigger(1, delayDC)
    end
    return false
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <UTILITY_ABILITY resource_id="0">
    <COST mana_cost="{B}" type="Mana" />
  </UTILITY_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1" resource_id="1">
    <CLEANUP fire_once="1" />
    <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_HAND" pre_trigger="1">
    if TriggerObject() == EffectDC():Get_CardPtr(0) then
       MTG():OverrideEvent()
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr( 0, TriggerObject() )
       delayDC:Protect_CardPtr(0)
       MTG():CreateDelayedTrigger(2, delayDC)
       TriggerObject():Exile()
       return true
    end
    return false
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY qualifier="Alternate" active_zone="ZONE_EXILE" resource_id="2">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Madness {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Folie {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Demencia {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wahnsinn {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Follia {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[マッドネス {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Madness {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Бешенство {B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Loucura {B}]]></LOCALISED_TEXT>
    <CLEANUP fire_once="1" />
    <TRIGGER value="ZONECHANGE_END" to_zone="ZONE_EXILE" from_zone="ZONE_HAND">
    return TriggerObject() == EffectDC():Get_CardPtr(0)
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local controller = EffectController()
    if controller ~= nil and TriggerObject() ~= nil then
       controller:BeginNewMultipleChoice()
       controller:AddMultipleChoiceAnswer( "UI_CONDITIONAL_QUESTION_YES", controller:CanCastSpellUsingResourceCost( TriggerObject(), 0 ) )
       controller:AddMultipleChoiceAnswer("UI_CONDITIONAL_QUESTION_NO")
       controller:AskMultipleChoiceQuestion( "OPTIONAL_ABILITY_QUESTION", TriggerObject() )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local controller = EffectController()
    if controller ~= nil and TriggerObject() ~= nil then
       if controller:GetMultipleChoiceResult() == 0 then
          controller:CastSpellUsingResourceCost( TriggerObject(), 0 )
       else
          TriggerObject():PutInGraveyard()
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>


You need to change all "B" costs to the appropriate cost for other cards.

The text is repeated because the first one will be displayed on the card, while the second will be displayed below the query when asking whether to cast or not.
8. Detain:

| Open
<TRIGGERED_ABILITY>
<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>


9. Radiance:

| 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>
10. SkipStep:

| Open
Code: Select all
  <TRIGGERED_ABILITY replacement_effect="1">
    <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>
In this case it is referred to skipping the upkeep step.


11. PutTokensOntoBattlefieldTappedAndAttacking:

| Open
Code: Select all
MTG():PutTokensOntoBattlefieldTappedAndAttacking( "TOKEN_FILENAME", number_of_tokens, EffectController(), pointer_to_the_player )
12. Populate:

| Open
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>
Just change or register CARD_QUERY target tag into GLOSSARY.xml or use an existing one.


13. 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() &gt; Object():GetCurrentPower() or TriggerObject():GetCurrentToughness() &gt; 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() &gt; EffectSource():GetCurrentPower() or TriggerObject():GetCurrentToughness() &gt; EffectSource():GetCurrentToughness() then
         EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
      end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
14. Storm:

| Open
Code: Select all
  <TRIGGERED_ABILITY active_zone="ZONE_STACK">
    <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 &gt; 0 then
       for i=0,spellsCastBefore-1 do
          local copy = EffectController():CopySpell( EffectSourceLKI() )
          EffectController():ChooseNewTargets(copy)
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
15: Split second:

| Open
Code: Select all
  <STATIC_ABILITY active_zone="ZONE_STACK">
    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>
16. This one is more specific but people might find it useful. "At the beginning of your end step, destroy each creature with converted mana cost equal to the number of +1/+1 counters on Necroplasm."

| Open
Code: Select all
  <TRIGGERED_ABILITY>
    -- Localised text omitted
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
    <FILTER filter_id="0">
    local counters = EffectSourceLKI():CountCounters( MTG():PlusOnePlusOneCounters() )
    local filter = ClearFilter()
    filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
    filter:Add(FE_CMC, OP_IS, counters)
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION filter_id="0">
    if FilteredCard() ~= nil then
       FilteredCard():Destroy()
    end
    </RESOLUTION_TIME_ACTION>
    <SFX text="GLOBAL_MASSACRE_PLAY" />
  </TRIGGERED_ABILITY>
17. "Remove a +1/+1 counter from a creature you control"

| Open
Code: Select all
    <COST type="generic">
      <PREREQUISITE>
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      local filter_count = filter:EvaluateObjects()
      if filter_count &gt; 0 then
         for i=0,filter_count-1 do
            local candidate = filter:GetNthEvaluatedObject(i)
            if candidate ~= nil and candidate:CountCounters( MTG():PlusOnePlusOneCounters() ) &gt; 0 then
               return true
            end
         end
      end
      return false
      </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
      MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      local filter_count = filter:EvaluateObjects()
      if filter_count &gt; 0 then
         for i=0,filter_count-1 do
            local candidate = filter:GetNthEvaluatedObject(i)
            if candidate ~= nil and candidate:CountCounters( MTG():PlusOnePlusOneCounters() ) &gt; 0 then
               candidate:MarkForFilter()
            end
         end
         filter:SetMarkedObjectsOnly()
         EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_YOU_CONTROL", EffectDC():Make_Targets(6) )
      end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      local creature = EffectDC():Get_Targets(6) and EffectDC():Get_Targets(6):Get_CardPtr(0)
      if creature ~= nil then
         creature:RemoveCounters( MTG():PlusOnePlusOneCounters(), 1 )
      end
      </RESOLUTION_TIME_ACTION>
    </COST>
18. "Regenerate each creature you control.":

| Open
Code: Select all
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    </FILTER>
    <RESOLUTION_TIME_ACTION filter_id="0">
    if FilteredCard() ~= nil then
       FilteredCard():GiveRegeneration()
    end
    </RESOLUTION_TIME_ACTION>
19: Battalion:

| Open
Example Boros Elite

Code: Select all
<TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Battalion — Whenever Boros Elite and at least two other creatures attack, Boros Elite gets +2/+2 until end of turn.]]></LOCALISED_TEXT>
   <TRIGGER value="ATTACKING" simple_qualifier="self" />
   <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    filter:Add( FE_IS_ATTACKING, OP_IS, true )
   filter:Add(FE_CONTROLLER, OP_IS, EffectController() )
   local number = filter:CountStopAt(3)
   </FILTER>
   <CONTINUOUS_ACTION layer="7C">
    if EffectSource() ~= nil then
       EffectSource():GetCurrentCharacteristics():Power_Add( 2 )
       EffectSource():GetCurrentCharacteristics():Toughness_Add( 2 )
    end
   </CONTINUOUS_ACTION>
   <DURATION simple_duration="untilEOT" />
   </TRIGGERED_ABILITY>
[/code]
20. Extort:

| Open
Code: Select all
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Extort]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Extorsion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Extorsionar.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Abnötigen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Estorsione]]></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[Extorquir]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED" simple_qualifier="objectyoucontrol" />
    <RESOLUTION_TIME_ACTION>
    local controller = EffectController()
    if controller ~= nil then
       controller:BeginNewMultipleChoice()
       controller:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_PAY_W", controller:CanPayManaCost("{W}") )
       controller:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_PAY_B", controller:CanPayManaCost("{B}") )
       controller:AddMultipleChoiceAnswer( "CARD_QUERY_DO_NOTHING" )
       controller:AskMultipleChoiceQuestion( "OPTIONAL_ABILITY_QUESTION", Object() )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local controller = EffectController()
    if controller ~= nil then
       local decision = controller:GetMultipleChoiceResult()
       if decision ~= 2 then
          if decision == 0 then
             controller:PayManaCost("{W}")
          elseif decision == 1 then
             controller:PayManaCost("{B}")
          end
          local lifeloss = 0
          local myTeam = controller:GetTeam()
          for i=0,MTG():GetNumberOfPlayers()-1 do
             local nthPlayer = MTG():GetNthPlayer(i)
             if nthPlayer ~= nil and nthPlayer:GetTeam() ~= myTeam then
                nthPlayer:LoseLife(1)
                lifeloss = lifeloss + 1
             end
          end
          controller:GainLife(lifeloss)
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
CARD_QUERY_OPTION_PAY_W and CARD_QUERY_OPTION_PAY_B need to be localised in TEXT_PERMANENT.


21. "Power and toughness are each equal to the number of creature cards in your graveyard."

| Open
Code: Select all
<STATIC_ABILITY active_zone="ZONE_ANY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Boneyard Wurm's power and toughness are each equal to the number of creature cards in your graveyard.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="7A">
    if EffectSource() ~= nil then
       local characteristics = EffectSource():GetCurrentCharacteristics()
       local filter = ClearFilter()       
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:SetZone( ZONE_GRAVEYARD, EffectController() )
       local total = filter:Count()       
       characteristics:Power_Set( total )
       characteristics:Toughness_Set( total )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
[/code]
22. Soulbound:

Wolfir Silverheart | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="WOLFIR_SILVERHEART_627047" />
  <CARDNAME text="WOLFIR_SILVERHEART" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Wolfir Silverheart]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cœur d’argent wolfir]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Licano corazón plateado]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Silberherz-Wölfling]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lupir Cuore d’Argento]]></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[Lupíneo Coração de Prata]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="627047" />
  <ARTID value="627047" />
  <ARTIST name="Raymond Swanland" />
  <CASTING_COST cost="{3}{G}{G}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Wolf" />
  <SUB_TYPE metaname="Warrior" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Association d’âmes |(Vous pouvez associer cette créature à une autre créature dissociée quand l’une d’elles arrive sur le champ de bataille. Elles restent associées tant que vous les contrôlez toutes les deux.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Unir almas. |(Puedes emparejar esta criatura con otra criatura no emparejada cuando cualquiera de ellas entre al campo de batalla. Permanecen emparejadas mientras controles ambas criaturas.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Seelengebunden |(Du kannst diese Kreatur an eine andere nicht gebundene Kreatur binden, wenn eine von beiden ins Spiel kommt. Sie bleiben verbunden, solange du die Kontrolle über beide Kreaturen hast.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Unione d’anime |(Puoi abbinare questa creatura a un’altra creatura non abbinata quando una delle due entra nel campo di battaglia. Restano abbinate fintanto che le controlli entrambe.)|]]></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[Elo espiritual |(Você pode emparelhar esta criatura com outra criatura não emparelhada quando uma delas entrar no campo de batalha. Elas permanecem emparelhadas enquanto você controlar ambas.)|]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="objectyoucontrol" to_zone="ZONE_BATTLEFIELD">
    return (TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) and EffectSource():GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_PHASING ) == false)
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    if (EffectSource() ~= nil and EffectSource():GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_PHASING ) == false and EffectSource():GetCardType():Test( CARD_TYPE_CREATURE ) and EffectSource():GetController() == EffectController()) then
      local filter = ClearFilter()
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
       filter:Add( FE_CHARACTERISTIC, OP_NOT, CHARACTERISTIC_PHASING )
      if TriggerObject() ~= EffectSource() then
        filter:Add( FE_CARD_INSTANCE, OP_IS, TriggerObject() )
      else
        filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
      end
      EffectController():ChooseItem ("CARD_QUERY_CHOOSE_CREATURE_TO_PAIR", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
    end 
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
      RSN_ObjectDC():Set_CardPtr(-627, target)
      RSN_ObjectDC():Set_PlayerPtr(-628, EffectController())
    end 
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as Wolfir Silverheart is paired with another creature, each of those creatures gets +4/+4.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que le Cœur d’argent wolfir est associé à une autre créature, chacune de ces créatures gagne +4/+4.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras el Licano corazón plateado esté emparejado con otra criatura, cada una de esas criaturas obtiene +4/+4.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange der Silberherz-Wölfling an eine andere Kreatur gebunden ist, erhalten beide Kreaturen +4/+4.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che il Lupir Cuore d’Argento è abbinato a un’altra creatura, ognuna di quelle creature prende +4/+4.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ウルフィーの銀心が他のクリーチャーと組になっているかぎり、それらのクリーチャーはそれぞれ+4/+4の修整を受ける。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[울피르 은심장이 다른 생물과 짝을 이루는 한, 두 생물 모두 +4/+4를 받는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пока Вульфир Серебряного Сердца находится в паре с другим существом, каждое из тех существ получает +4/+4.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Enquanto Lupíneo Coração de Prata estiver emparelhado com outra criatura, cada uma dessas criaturas receberá +4/+4.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="8">
    local pairedCard = RSN_ObjectDC():Get_CardPtr(-627)
    if EffectSource() ~= nil and pairedCard ~= nil then
       pairedCard:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_PHASING, 1 )
       EffectSource():GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_PHASING, 1 )
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="7C">
    local pairedCard = RSN_ObjectDC():Get_CardPtr(-627)
    if EffectSource() ~= nil and pairedCard ~= nil then
       pairedCard:GetCurrentCharacteristics():Power_Add( 4 )
      pairedCard:GetCurrentCharacteristics():Toughness_Add( 4 )
       EffectSource():GetCurrentCharacteristics():Power_Add( 4 )
       EffectSource():GetCurrentCharacteristics():Toughness_Add( 4 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="ABILITY_RESOLVED">
    if EffectSource():GetCardType():Test( CARD_TYPE_CREATURE ) and RSN_ObjectDC():Get_CardPtr(-627) == nil then
      local filter = ClearFilter()
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      local numCards = filter:EvaluateObjects()
      for i=0,(numCards-1) do
         local card = filter:GetNthEvaluatedObject(i)
        if card ~= nil and RSN_GetObjectDC( card, false ) ~= nil then
          local pairedCard = RSN_GetObjectDC( card, false ):Get_CardPtr(-627)
            if pairedCard ~= nil and pairedCard == EffectSource() then
            RSN_ObjectDC():Set_CardPtr(-627, card)
            RSN_ObjectDC():Set_PlayerPtr(-628, EffectController())
            return true
           end             
          end         
        end         
    end 
    return false
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" />
    <TRIGGER value="ABILITY_RESOLVED">
    local pairedCard = RSN_ObjectDC():Get_CardPtr(-627)
    local player = RSN_ObjectDC():Get_PlayerPtr(-628)
    if pairedCard ~= nil and player ~= nil then
      return (pairedCard:GetController() ~= player or EffectSource():GetController() ~= player or pairedCard:GetCardType():Test( CARD_TYPE_CREATURE ) == false or EffectSource():GetCardType():Test( CARD_TYPE_CREATURE ) == false)
    end
      return false
    </TRIGGER>
    <TRIGGER value="SPELL_RESOLVED">
    local pairedCard = RSN_ObjectDC():Get_CardPtr(-627)
    local player = RSN_ObjectDC():Get_PlayerPtr(-628)
    if pairedCard ~= nil and player ~= nil then
      return (pairedCard:GetController() ~= player or EffectSource():GetController() ~= player or pairedCard:GetCardType():Test( CARD_TYPE_CREATURE ) == false or EffectSource():GetCardType():Test( CARD_TYPE_CREATURE ) == false)
    end
      return false
    </TRIGGER>
    <TRIGGER value="PLAYER_LOSES_GAME">
    local player = RSN_ObjectDC():Get_PlayerPtr(-628)
    if player ~= nil then
      return TriggerPlayer() == player
    end
      return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
     RSN_ObjectDC():Set_CardPtr(-627, nil)
     RSN_ObjectDC():Set_PlayerPtr(-628, nil)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <HELP title="MORE_INFO_TITLE_SOULBOND" body="MORE_INFO_BODY_SOULBOND" zone="ZONE_ANY" />
  <SFX text="COMBAT_BITE_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BITE_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_BASE_SCORE score="750" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
23. Scry:

| Open
Code: Select all
<RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    local effectController = EffectController()
    filter:SetZone( ZONE_LIBRARY, effectController )
    filter:SetPortion( 2 ) --Change this
    effectController:SetItemCount( 2 ) --Change this
    effectController:SetItemPrompt(0, "CARD_QUERY_CHOOSE_CARD_TO_PUT_ON_BOTTOM_LIBRARY" )
    effectController:SetItemPrompt(1, "CARD_QUERY_CHOOSE_CARD_TO_PUT_ON_BOTTOM_LIBRARY" ) --Add or remove lines so there are as many lines as the scry number.
    effectController:ChooseItems( EffectDC():Make_Targets(0), QUERY_FLAG_UP_TO )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local rem_count = 2 --Change this
    local cardsInLibrary = EffectController():Library_Count()
    if rem_count &gt; cardsInLibrary then
      rem_count = cardsInLibrary
    end
    local target_array = {}
    for i=0,1 do
      target_array[i] = EffectDC():Get_Targets(0):Get_CardPtr(i)
    end
    for i = 0,1 do
      if target_array[i] ~= nil then
         target_array[i]:PutOnBottomOfLibrary()
         rem_count = rem_count-1
       end
    end
    EffectDC():Set_Int(2, rem_count)
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    local effectController = EffectController()
    local remainingCount = EffectDC():Get_Int(2)
    if remainingCount &gt; 0 then
      filter:SetZone( ZONE_LIBRARY, effectController )
      filter:SetPortion( remainingCount )
      effectController:SetItemCount( remainingCount )
       for i = 0, (remainingCount-1) do
          effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_PUT_ONTO_LIBRARY" )
       end
       effectController:ChooseItems( EffectDC():Make_Targets(1) )
    end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local remainingCount = EffectDC():Get_Int(2)
    if remainingCount &gt; 0 then
      local target_array = {}
       for i = 0, (remainingCount-1) do
        target_array[i] = EffectDC():Get_Targets(1):Get_CardPtr(i)
      end
       for i = 0, (remainingCount-1) do
        if target_array[i] ~= nil then
           target_array[i]:PutOnTopOfLibrary()
         end
       end
    end
    </RESOLUTION_TIME_ACTION>
24. Ripple:

| Open
Code: Select all
  <TRIGGERED_ABILITY active_zone="ZONE_STACK">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ripple 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Remous 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Ondear 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wallung 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Propagazione 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[波及 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Ripple 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Рябь 4]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ondular 4]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED" simple_qualifier="self" />
    <RESOLUTION_TIME_ACTION>
    for i=0,3 do
       local card = EffectController():Library_GetNth(i)
       if card ~= nil then
          card:Reveal()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local controller = EffectController()
    local queryDC = EffectDC():Make_Chest(1)
    local answerDC = EffectDC():Make_Targets(2)
    local cardsToSelect = 0
    for i=0,3 do
       local card = controller:Library_GetNth(i)
       if card ~= nil then
          queryDC:Set_CardPtr(i, card)
          if card:GetCardName() == TriggerObjectLKI():GetCardName() then
             if controller:CanCastSpellForFree(card) then
                cardsToSelect = cardsToSelect+1
             else
                queryDC:QueryUnselect_CardPtr(i)
             end
          else
             queryDC:QueryUnselect_CardPtr(i)
          end
       else
          break
       end
    end
    local count = cardsToSelect
    if count == 0 then
       count = 1 -- without this, I think we wouldn't see the cards we revealed when none is playable
    end
    controller:SetItemCount(count)
    for i=0,count-1 do
       controller:SetItemPrompt(i, "CARD_QUERY_DJINN_OF_WISHES_QUESTION")
    end
    controller:ChooseItemsFromDC(queryDC, answerDC, QUERY_FLAG_UP_TO)
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local chosenDC = EffectDC():Get_Targets(2)
    local toCast = {}
    local notToCast = {}
    local card = nil
    for i=0,3 do
       card = controller:Library_GetNth(i)
       if card ~= nil then
          local found = false
          for j=0,3 do
             if chosenDC ~= nil and card == chosenDC:Get_CardPtr(j) then
                toCast[i] = card
                found = true
                break
             end
          end
          if found == false then
             notToCast[i] = card
          end
       else
          break
       end
    end
    for i=0,3 do
       card = toCast[i]
       if card ~= nil then
          EffectController():CastSpellForFree(cardToCast)
       end
    end
    for i=0,3 do
       card = notToCast[i]
       if card ~= nil then
          card:PutOnBottomOfLibrary()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <MAY tag="CARD_QUERY_RIPPLE" always_prompt="1" />
  </TRIGGERED_ABILITY>
25. Conspire:

Conspire (tested) | Open
Code: Select all
  <UTILITY_ABILITY qualifier="Additional">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Conspire]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Conspiration]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Conspirar.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verschwören]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Cospirare]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[共謀]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Conspire]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Заговор]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conspirar]]></LOCALISED_TEXT>
    <COST type="Generic">
      <PREREQUISITE>
      return true -- it's optional so you can cast the spell anyway
      </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
      local controller = EffectController()
      MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:Add(FE_CONTROLLER, OP_IS, controller)
      filter:Add(FE_IS_TAPPED, false)
      local filter_count = filter:EvaluateObjects()
      if filter_count &gt; 0 then
         for i=0,filter_count-1 do
            local creature = filter:GetNthEvaluatedObject(i)
            if creature:GetColour():TestAny( EffectSource():GetColour() ) then
               creature:MarkForFilter()
            end
         end
      end
      filter:SetMarkedObjectsOnly()
      if filter:CountStopAt(2) == 2 then
         controller:SetItemCount(2)
         for i=0,1 do
          controller:SetItemPrompt(i, "CARD_QUERY_CHOOSE_CREATURE_TAP")
         end
         controller:ChooseItems( EffectDC():Make_Targets(10), QUERY_FLAG_MAY )
      end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      local targetDC = EffectDC():Get_Targets(10)
      if targetDC ~= nil then
         local target_a = targetDC:Get_CardPtr(0)
         local target_b = targetDC:Get_CardPtr(1)
         if target_a ~= nil and target_b ~= nil then
            local delayDC = EffectDC():Make_Chest(11)
            delayDC:Set_CardPtr( 0, EffectSource() )
            MTG():CreateDelayedTrigger(10, delayDC)
            target_a:Tap()
            target_b:Tap()
         end
      end
      </RESOLUTION_TIME_ACTION>
    </COST>
  </UTILITY_ABILITY>
  <TRIGGERED_ABILITY resource_id="10">
    <CLEANUP fire_once="1" />
    <TRIGGER value="SPELL_PLAYED">
    return TriggerObject() == EffectDC():Get_CardPtr(0)
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local spell = TriggerObjectLKI()
    local controller = EffectController()
    if spell ~= nil then
       local copy = controller:CopySpell(spell)
       controller:ChooseNewTargets(copy)
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
Cards:

Part: 1

http://www.slightlymagic.net/forum/viewtopic.php?f=109&t=11010&p=124568#p124568

Giga Part 2:

http://www.slightlymagic.net/forum/viewtopic.php?f=109&t=11094&p=125139#p125139

Thanks everyone! :)
Last edited by Master Necro on 24 Jul 2013, 20:24, edited 30 times in total.
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby thefiremind » 02 Jul 2013, 19:45

You can remove transmute because Netherborn Phalanx is in the official cards.

Some of them are keywords, not abilities, so there isn't a standard way to approach them. For example, hellbent only indicates that something can happen when you have no cards in hand, which can be easily checked with
Code: Select all
EffectController():Hand_Count() == 0
but what happens if it's true, depends on the card.
< 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: 717 times

Re: Formal Request Thread

Postby Master Necro » 02 Jul 2013, 20:03

thefiremind wrote:You can remove transmute because Netherborn Phalanx is in the official cards.

Some of them are keywords, not abilities, so there isn't a standard way to approach them. For example, hellbent only indicates that something can happen when you have no cards in hand, which can be easily checked with
Code: Select all
EffectController():Hand_Count() == 0
but what happens if it's true, depends on the card.
Removed. :)

So Hellbent can be achived just by making the trigger EffectController():Hand_Count() == 0 and telling the card what happens. Cool. :)
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby thefiremind » 02 Jul 2013, 20:42

Master Necro wrote:So Hellbent can be achived just by making the trigger EffectController():Hand_Count() == 0 and telling the card what happens. Cool. :)
It won't be always a trigger: for example, Demon's Jester's hellbent keyword is on a static ability, while Nihilistic Glee uses the hellbent condition as an availability condition for the activated ability. Jagged Poppet has a trigger but it has an intervening if, so the check will need to be inserted into the new <INTERVENING_IF>...</INTERVENING_IF> block.
< 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: 717 times

Re: Formal Request Thread

Postby Master Necro » 02 Jul 2013, 20:49

thefiremind wrote:
Master Necro wrote:So Hellbent can be achived just by making the trigger EffectController():Hand_Count() == 0 and telling the card what happens. Cool. :)
It won't be always a trigger: for example, Demon's Jester's hellbent keyword is on a static ability, while Nihilistic Glee uses the hellbent condition as an availability condition for the activated ability. Jagged Poppet has a trigger but it has an intervening if, so the check will need to be inserted into the new <INTERVENING_IF>...</INTERVENING_IF> block.
I put that entire post as a disclaimer in the first post. :)
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby RiiakShiNal » 02 Jul 2013, 21:25

Untested, but theoretically this should work for Scavenge:
Code: Select all
   <ACTIVATED_ABILITY active_zone="ZONE_GRAVEYARD">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Scavenge {$TextValue$} |(|{$TextValue$}|, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Récupération {$TextValue$} |(|{$TextValue$}|, exilez cette carte de votre cimetière : Mettez un nombre de marqueurs +1/+1 égal à la force de cette carte sur une créature ciblée. Ne récupérez que lorsque vous pourriez lancer un rituel.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Carroñar {$TextValue$}. |(|{$TextValue$}|, exiliar esta carta de tu cementerio: Pon sobre la criatura objetivo una cantidad de contadores +1/+1 igual a la fuerza de esta carta. Activa la habilidad de carroñar como un conjuro.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ausplündern {$TextValue$} |(|{$TextValue$}|, schicke diese Karte aus deinem Friedhof ins Exil: Lege so viele +1/+1-Marken, wie die Stärke dieser Karte beträgt, auf eine Kreatur deiner Wahl. Spiele Ausplündern wie eine Hexerei.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mangiacarogne {$TextValue$} |(|{$TextValue$}|, Esilia questa carta dal tuo cimitero: Metti un numero di segnalini +1/+1 pari alla forza di questa carta su una creatura bersaglio. Attiva mangiacarogne solo quando potresti lanciare una stregoneria.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[活用 {$TextValue$} |(|{$TextValue$}|, このカードをあなたの墓地から追放する:クリーチャー1体を対象とし、それの上にこのカードのパワーに等しい数の+1/+1カウンターを置く。活用はソーサリーとしてのみ行う。)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[섭취 {$TextValue$} |(|{$TextValue$}|, 당신의 무덤에서 이 카드를 추방한다: 생물 한 개를 목표로 정한다. 이 카드의 공격력만큼의 +1/+1 카운터를 그 생물에 올려놓는다. 당신이 집중마법을 발동할 수 있는 시기에만 섭취 능력을 활성화할 수 있다.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Утилизация {$TextValue$} |(|{$TextValue$}|, изгоните эту карту из вашего кладбища: положите на целевое существо жетоны +1/+1, количество которых равно силе этой карты. Утилизируйте только как волшебство.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Necrofagia {$TextValue$} |(|{$TextValue$}|, Exile este card de seu cemitério: Coloque uma quantidade de marcadores +1/+1 igual ao poder deste card na criatura alvo. Use necrofagia somente quando puder conjurar um feitiço.)|]]></LOCALISED_TEXT>
      <COST type="Mana" mana_cost="{$Value$}" />
      <COST type="ExileSelf" />
      <AVAILABILITY sorcery_time="1" />
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_PLUS1_PLUS1_COUNTER" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
         local oTarget = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if (oTarget ~= nil) then
            oTarget:AddCounters( MTG():PlusOnePlusOneCounters(), Object():GetCurrentCharacteristics():Power_Get() )
         end
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
{$TextValue$} needs to be replaced with the localized text equivalent of the scavenge cost and {$Value$} needs to be replaced with the scavenge cost. So if you have Scavenge {B/G} then {$TextValue$} would be {a} and {$Value$} would be {B/G}.
Problems with base game cards: DotP 2014 Core Fixes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
RiiakShiNal
Programmer
 
Posts: 2115
Joined: 16 May 2011, 21:37
Has thanked: 73 times
Been thanked: 468 times

Re: Formal Request Thread

Postby Toldist » 02 Jul 2013, 22:55

Please do it Talrand from 2013 to 2014
Toldist
 
Posts: 3
Joined: 02 Jul 2013, 22:18
Has thanked: 0 time
Been thanked: 0 time

Re: Formal Request Thread

Postby gorem2k » 03 Jul 2013, 00:18

tested Scavenge. seems fine!

this thread is going to be useful!
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Formal Request Thread

Postby Master Necro » 03 Jul 2013, 05:22

RiiakShiNal wrote:Untested, but theoretically this should work for Scavenge:
Code: Select all
   <ACTIVATED_ABILITY active_zone="ZONE_GRAVEYARD">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Scavenge {$TextValue$} |(|{$TextValue$}|, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Récupération {$TextValue$} |(|{$TextValue$}|, exilez cette carte de votre cimetière : Mettez un nombre de marqueurs +1/+1 égal à la force de cette carte sur une créature ciblée. Ne récupérez que lorsque vous pourriez lancer un rituel.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Carroñar {$TextValue$}. |(|{$TextValue$}|, exiliar esta carta de tu cementerio: Pon sobre la criatura objetivo una cantidad de contadores +1/+1 igual a la fuerza de esta carta. Activa la habilidad de carroñar como un conjuro.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ausplündern {$TextValue$} |(|{$TextValue$}|, schicke diese Karte aus deinem Friedhof ins Exil: Lege so viele +1/+1-Marken, wie die Stärke dieser Karte beträgt, auf eine Kreatur deiner Wahl. Spiele Ausplündern wie eine Hexerei.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mangiacarogne {$TextValue$} |(|{$TextValue$}|, Esilia questa carta dal tuo cimitero: Metti un numero di segnalini +1/+1 pari alla forza di questa carta su una creatura bersaglio. Attiva mangiacarogne solo quando potresti lanciare una stregoneria.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[活用 {$TextValue$} |(|{$TextValue$}|, このカードをあなたの墓地から追放する:クリーチャー1体を対象とし、それの上にこのカードのパワーに等しい数の+1/+1カウンターを置く。活用はソーサリーとしてのみ行う。)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[섭취 {$TextValue$} |(|{$TextValue$}|, 당신의 무덤에서 이 카드를 추방한다: 생물 한 개를 목표로 정한다. 이 카드의 공격력만큼의 +1/+1 카운터를 그 생물에 올려놓는다. 당신이 집중마법을 발동할 수 있는 시기에만 섭취 능력을 활성화할 수 있다.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Утилизация {$TextValue$} |(|{$TextValue$}|, изгоните эту карту из вашего кладбища: положите на целевое существо жетоны +1/+1, количество которых равно силе этой карты. Утилизируйте только как волшебство.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Necrofagia {$TextValue$} |(|{$TextValue$}|, Exile este card de seu cemitério: Coloque uma quantidade de marcadores +1/+1 igual ao poder deste card na criatura alvo. Use necrofagia somente quando puder conjurar um feitiço.)|]]></LOCALISED_TEXT>
      <COST type="Mana" mana_cost="{$Value$}" />
      <COST type="ExileSelf" />
      <AVAILABILITY sorcery_time="1" />
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_PLUS1_PLUS1_COUNTER" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
         local oTarget = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if (oTarget ~= nil) then
            oTarget:AddCounters( MTG():PlusOnePlusOneCounters(), Object():GetCurrentCharacteristics():Power_Get() )
         end
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
{$TextValue$} needs to be replaced with the localized text equivalent of the scavenge cost and {$Value$} needs to be replaced with the scavenge cost. So if you have Scavenge {B/G} then {$TextValue$} would be {a} and {$Value$} would be {B/G}.
Thanks, added to the op. :)

Btw, is Lazav, Dimir Mastermind possible in 2014?

gorem2k wrote:tested Scavenge. seems fine!

this thread is going to be useful!
Yep and as it grows it will be more and more awesome, our Magic Library. :mrgreen:
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby Scion of Darkness » 03 Jul 2013, 09:43

removed
Last edited by Scion of Darkness on 03 Jul 2013, 14:14, edited 1 time in total.
User avatar
Scion of Darkness
 
Posts: 235
Joined: 27 Aug 2012, 13:14
Has thanked: 17 times
Been thanked: 23 times

Re: Formal Request Thread

Postby thefiremind » 03 Jul 2013, 09:53

Master Necro wrote:Btw, is Lazav, Dimir Mastermind possible in 2014?
No, we still can't change a card name.
< 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: 717 times

Re: Formal Request Thread

Postby damienx45 » 03 Jul 2013, 19:38

nevermind i am pulling my request for cards.
Last edited by damienx45 on 04 Jul 2013, 14:39, edited 1 time in total.
User avatar
damienx45
 
Posts: 69
Joined: 07 Mar 2013, 00:19
Has thanked: 4 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Master Necro » 04 Jul 2013, 05:38

Quick question, how do I code "Goblin creatures attack each turn if able." on an Enchantment card?
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby kevlahnota » 04 Jul 2013, 06:27

By giving them CHARACTERISTIC_MUST_ATTACK_EACH_TURN attribute:
Code: Select all
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Goblin creatures attacks each turn if able.]]></LOCALISED_TEXT>
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_GOBLIN )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    </FILTER>
    <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:Bool_Set( CHARACTERISTIC_MUST_ATTACK_EACH_TURN, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
Master Necro wrote:Quick question, how do I code "Goblin creatures attack each turn if able." on an Enchantment card?
User avatar
kevlahnota
Programmer
 
Posts: 530
Joined: 19 Jul 2010, 17:45
Location: Philippines
Has thanked: 12 times
Been thanked: 152 times

Re: Formal Request Thread

Postby jacque » 04 Jul 2013, 06:58

I have 4 requests... It'll be cool if someone could include them in their core... =)

1. Rite of Replication
2. Elesh Norn, Grand Cenobite
3. Ghostly Prison
4. Birds of Paradise

THANKS!!!
Learn making your own cards today!!!

Click on Image if a post/reply helped you.

I stitch old cards together to make new ones...

~ Jacque, the confused
jacque
 
Posts: 217
Joined: 07 Jun 2013, 20:11
Has thanked: 26 times
Been thanked: 44 times

Next

Return to 2014

Who is online

Users browsing this forum: No registered users and 5 guests


Who is online

In total there are 5 users online :: 0 registered, 0 hidden and 5 guests (based on users active over the past 10 minutes)
Most users ever online was 287 on 31 Mar 2019, 04:11

Users browsing this forum: No registered users and 5 guests

Login Form