Board index Programs with AI or Rules Enforcement Magic: The Gathering - Duels of the Planeswalkers New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels) 2014
Formal Request Thread
Moderator: CCGHQ Admins
Formal Request Thread
by 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 kload of codes 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:
3. "X creatures attack each turn if able." Where X is creature type (Goblin, Beast...)
4. Dredge:
5. Retrace:
6. Hideaway:
9. Radiance:
11. PutTokensOntoBattlefieldTappedAndAttacking:
13. Evolve:
21. "Power and toughness are each equal to the number of creature cards in your graveyard."
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!
To start I would like to request a whole kload of codes 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
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.
- | 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>
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>
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>
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
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() < 21 then
EffectController():CastSpellForFree(spellToCast)
break
end
end
end
</RESOLUTION_TIME_ACTION>
<MAY />
</ACTIVATED_ABILITY>
- | 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.
- | 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>
- | 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>
11. PutTokensOntoBattlefieldTappedAndAttacking:
- | Open
- Code: Select all
MTG():PutTokensOntoBattlefieldTappedAndAttacking( "TOKEN_FILENAME", number_of_tokens, EffectController(), pointer_to_the_player )
- | 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>
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() > Object():GetCurrentPower() or TriggerObject():GetCurrentToughness() > Object():GetCurrentToughness() then
return TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and TriggerObject() ~= nil then
if TriggerObject():GetCurrentPower() > EffectSource():GetCurrentPower() or TriggerObject():GetCurrentToughness() > EffectSource():GetCurrentToughness() then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- | 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 > 0 then
for i=0,spellsCastBefore-1 do
local copy = EffectController():CopySpell( EffectSourceLKI() )
EffectController():ChooseNewTargets(copy)
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- | 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>
- | 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>
- | 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 > 0 then
for i=0,filter_count-1 do
local candidate = filter:GetNthEvaluatedObject(i)
if candidate ~= nil and candidate:CountCounters( MTG():PlusOnePlusOneCounters() ) > 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 > 0 then
for i=0,filter_count-1 do
local candidate = filter:GetNthEvaluatedObject(i)
if candidate ~= nil and candidate:CountCounters( MTG():PlusOnePlusOneCounters() ) > 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>
- | 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>
- | 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>
- | 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>
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>
- 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>
- | 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 > 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 > 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 > 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>
- | 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>
- 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 > 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>
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.
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by 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
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
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 721 times
Re: Formal Request Thread
by Master Necro » 02 Jul 2013, 20:03
Removed.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 withbut what happens if it's true, depends on the card.
- Code: Select all
EffectController():Hand_Count() == 0
So Hellbent can be achived just by making the trigger EffectController():Hand_Count() == 0 and telling the card what happens. Cool.
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by thefiremind » 02 Jul 2013, 20:42
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.Master Necro wrote:So Hellbent can be achived just by making the trigger EffectController():Hand_Count() == 0 and telling the card what happens. Cool.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 721 times
Re: Formal Request Thread
by Master Necro » 02 Jul 2013, 20:49
I put that entire post as a disclaimer in the first post.thefiremind wrote: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.Master Necro wrote:So Hellbent can be achived just by making the trigger EffectController():Hand_Count() == 0 and telling the card what happens. Cool.
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by 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>
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2185
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
- Toldist
- Posts: 3
- Joined: 02 Jul 2013, 22:18
- Has thanked: 0 time
- Been thanked: 0 time
Re: Formal Request Thread
by gorem2k » 03 Jul 2013, 00:18
tested Scavenge. seems fine!
this thread is going to be useful!
this thread is going to be useful!
Re: Formal Request Thread
by Master Necro » 03 Jul 2013, 05:22
Thanks, added to the op.RiiakShiNal wrote:Untested, but theoretically this should work for Scavenge:{$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}.
- 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>
Btw, is Lazav, Dimir Mastermind possible in 2014?
Yep and as it grows it will be more and more awesome, our Magic Library.gorem2k wrote:tested Scavenge. seems fine!
this thread is going to be useful!
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by 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.
-
Scion of Darkness - Posts: 235
- Joined: 27 Aug 2012, 13:14
- Has thanked: 17 times
- Been thanked: 23 times
Re: Formal Request Thread
by thefiremind » 03 Jul 2013, 09:53
No, we still can't change a card name.Master Necro wrote:Btw, is Lazav, Dimir Mastermind possible in 2014?
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 721 times
Re: Formal Request Thread
by 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.
Re: Formal Request Thread
by Master Necro » 04 Jul 2013, 05:38
Quick question, how do I code "Goblin creatures attack each turn if able." on an Enchantment card?
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by 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?
-
kevlahnota - Programmer
- Posts: 825
- Joined: 19 Jul 2010, 17:45
- Location: Philippines
- Has thanked: 14 times
- Been thanked: 264 times
Re: Formal Request Thread
by 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!!!
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 if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Who is online
Users browsing this forum: No registered users and 21 guests