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
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
Fate Reforged Development Thread (185/185) UPDATED 3-1-15
Moderator: CCGHQ Admins
58 posts
• Page 2 of 4 • 1, 2, 3, 4
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 07 Feb 2015, 22:25
Thanks! I'll search for an example in some cards.
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 09 Feb 2015, 06:12
Okay, to hurry the release of this set I have to request a few cards. Also, if someone does offer assistance, can you supply the entire codes as opposed to snippets? I learn better by studying full codes.
Can someone modify the code below to make it work properly?
The code is complete except for the "minus one" part Can someone add that.
This is my Bolster code for Elite Scaleguard. Again, can someone modify it to make Dragonscale General.
I am fully requesting this one. The code below has "At the beginning of combat on your turn, if you control a creature with power 4 or greater"... The rest of the code needs to be added. I keep having trouble adding payment costs.
I'm not sure this one is even possible. But have a look at this code provided by Xander9009 and let's see if it can be modified to create Soulfire Grand Master
Can someone modify the code below to make it work properly?
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each opponent’s end step, that player chooses up to two creatures he or she controls, then sacrifices the rest.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, player)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
local Count = filter:Count()
if Count > 0 then
player:SetItemCount(2)
player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
player:ChooseItems( EffectDC():Make_Targets(0), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player = MTG():GetNthPlayer(i)
local targetDC = EffectDC():Get_Targets(0)
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, player)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
Count = filter:Count()
filter:EvaluateObjects()
if Count > 0 then
for j=0,(Count-1) do
local Card = filter:GetNthEvaluatedObject(j)
if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) and Card ~= targetDC:Get_CardPtr(1) then
player:Sacrifice(Card)
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
The code is complete except for the "minus one" part Can someone add that.
- Code: Select all
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each player discards all the cards in his or her hand, then draws that many cards minus one.]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
EffectDC():Set_Int( i, player:Hand_Count() )
player:MoveLocalZone( ZONE_HAND, ZONE_GRAVEYARD )
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
player:ShuffleLibrary()
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
local number = EffectDC():Get_Int(i)
player:DrawCards( number )
end
end
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
This is my Bolster code for Elite Scaleguard. Again, can someone modify it to make Dragonscale General.
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your end step, bolster X, where X is the number of tapped creatures you control. |(Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.)|
|"Dragons seek war. I bring it to them."|]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
local i = 0
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
if filter:CountStopAt(1) == 1 then
local subfilter = filter:AddSubFilter_Or()
while i >= 0 do
subfilter:Add( FE_TOUGHNESS, OP_EQUALS, i )
if filter:CountStopAt(2) == 2 then
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_GET_PLUS1_PLUS1_COUNTER", EffectDC():Make_Targets(0) )
return
elseif filter:CountStopAt(2) == 1 then
filter:EvaluateObjects()
EffectDC():Make_Targets(0):Set_CardPtr( 0, filter:GetNthEvaluatedObject(0) )
return
end
i = i + 1
end
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
target:AddCounters( MTG():PlusOnePlusOneCounters(), 2)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
I am fully requesting this one. The code below has "At the beginning of combat on your turn, if you control a creature with power 4 or greater"... The rest of the code needs to be added. I keep having trouble adding payment costs.
- Code: Select all
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ferocious — At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return Flamewake Phoenix from your graveyard to the battlefield.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_BEGIN_COMBAT
</TRIGGER>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_BATTLEFIELD )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
</FILTER>
<RESOLUTION_TIME_ACTION filter_id="0">
local filter2 = ClearFilter()
filter2:SetZone( ZONE_BATTLEFIELD )
filter2:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter2:Add( FE_CONTROLLER, OP_IS, EffectController() )
filter2:Add( FE_POWER, OP_GREATER_THAN_OR_EQUAL_TO, 4)
if filter2:CountStopAt(1) == 1 then
if FilteredCard() ~= nil then
FilteredCard():
end
end
</RESOLUTION_TIME_ACTION>
I'm not sure this one is even possible. But have a look at this code provided by Xander9009 and let's see if it can be modified to create Soulfire Grand Master
- Code: Select all
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Instant and sorcery spells you control have lifelink.]]></LOCALISED_TEXT>
<TRIGGER value="SOURCE_DEALS_DAMAGE" simple_qualifier="objectyoucontrol" pre_trigger="1">
return TriggerObject():GetCardType():IsPermanent() == false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local Damage = Damage():GetGetAmount()
if EffectController() ~= nil and Damage > 0 then
EffectController():GainLife(Damage)
end
</RESOLUTION_TIME_ACTION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}{h}{h}: The next time you cast an instant or sorcery spell from your hand this turn, put that card into your hand instead of into your graveyard as it resolves.]]></LOCALISED_TEXT>
<COST mana_cost="{2}{U/R}{U/R}" type="Mana" />
<RESOLUTION_TIME_ACTION>
MTG():CreateDelayedTrigger(1, EffectDC():Make_Chest(1))
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<CLEANUP fire_once="1" simple_cleanup="EndOfTurn" />
<TRIGGER value="SPELL_PLAYED" simple_qualifier="controller">
return (TriggerObject():GetCardType():Test(CARD_TYPE_INSTANT) or TriggerObject():GetCardType():Test(CARD_TYPE_SORCERY)) and TriggerObject():GetErstwhileZone() == ZONE_HAND
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, TriggerObject())
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(2, delayDC)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
<CLEANUP fire_once="1" simple_cleanup="EndOfTurn" />
<TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_STACK" pre_trigger="1">
if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
TriggerObject():PutInHand()
return true
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Xander9009 » 09 Feb 2015, 16:42
Is this the one I coded? Are these my mistakes? Oops lol.Tejahn wrote:Okay, to hurry the release of this set I have to request a few cards. Also, if someone does offer assistance, can you supply the entire codes as opposed to snippets? I learn better by studying full codes.
Archfiend of Depravity
Can someone modify the code below to make it work properly?
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each opponent’s end step, that player chooses up to two creatures he or she controls, then sacrifices the rest.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, player)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
local Count = filter:Count()
if Count > 0 then
player:SetItemCount(2)
player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
player:ChooseItems( EffectDC():Make_Targets(0), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player = MTG():GetNthPlayer(i)
local targetDC = EffectDC():Get_Targets(0)
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, player)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
Count = filter:Count()
filter:EvaluateObjects()
if Count > 0 then
for j=0,(Count-1) do
local Card = filter:GetNthEvaluatedObject(j)
if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) and Card ~= targetDC:Get_CardPtr(1) then
player:Sacrifice(Card)
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
The trigger says simple_qualifier="controller" so it will only fire at the end of YOUR turn.
In the second resolution block, Count is used without being declared as a local.
filter:Count() is called and immediately follow up with filter:EvaluateObjects(). That will work, but evaluateobjects returns the count just like Count(). It does more but is a little slower, so use Count() if you can, but if you have to use EvaluateObjects(), then you don't need Count().
The second item prompt is never set.
Last, in the second resolution block, player is being set to MTG():GetNthPlayer(i), but not only is i undefined, but it should be TriggerPlayer().
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each opponent’s end step, that player chooses up to two creatures he or she controls, then sacrifices the rest.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" >
return MTG():GetStep() == STEP_END_OF_TURN and TriggerPlayer():GetTeam() ~= EffectController():GetTeam()
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, player)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
local Count = filter:Count()
if Count > 0 then
player:SetItemCount(2)
player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
player:SetItemPrompt( 1, "CARD_QUERY_CHOOSE_CREATURE" )
player:ChooseItems( EffectDC():Make_Targets(0), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
local targetDC = EffectDC():Get_Targets(0)
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, player)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
local Count = filter:EvaluateObjects()
if Count > 0 then
for j=0,(Count-1) do
local Card = filter:GetNthEvaluatedObject(j)
if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) and Card ~= targetDC:Get_CardPtr(1) then
player:Sacrifice(Card)
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
The card does not say to shuffle your library. That whole block needs removed. Also, instead of using MoveLocalZone, just use DiscardHand(). Finally, don't reuse variables Last block: number is already used.Tejahn wrote:Dark Deal
The code is complete except for the "minus one" part Can someone add that.
- Code: Select all
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each player discards all the cards in his or her hand, then draws that many cards minus one.]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
EffectDC():Set_Int( i, player:Hand_Count() )
player:MoveLocalZone( ZONE_HAND, ZONE_GRAVEYARD )
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
player:ShuffleLibrary()
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
local number = EffectDC():Get_Int(i)
player:DrawCards( number )
end
end
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
- Code: Select all
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each player discards all the cards in his or her hand, then draws that many cards minus one.]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
EffectDC():Set_Int( i, player:Hand_Count() )
player:DiscardHand()
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local number = MTG():GetNumberOfPlayers()
if number ~= nil then
for i=0,(number-1) do
local player = MTG():GetNthPlayer(i)
if player ~= nil then
local count = EffectDC():Get_Int(i) - 1
if count > 0 then
player:DrawCards( count )
end
end
end
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
Tejahn wrote:Dragonscale General
This is my Bolster code for Elite Scaleguard. Again, can someone modify it to make Dragonscale General.
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your end step, bolster X, where X is the number of tapped creatures you control. |(Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.)|
|"Dragons seek war. I bring it to them."|]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
local i = 0
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
if filter:CountStopAt(1) == 1 then
local subfilter = filter:AddSubFilter_Or()
while i >= 0 do
subfilter:Add( FE_TOUGHNESS, OP_EQUALS, i )
if filter:CountStopAt(2) == 2 then
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_GET_PLUS1_PLUS1_COUNTER", EffectDC():Make_Targets(0) )
return
elseif filter:CountStopAt(2) == 1 then
filter:EvaluateObjects()
EffectDC():Make_Targets(0):Set_CardPtr( 0, filter:GetNthEvaluatedObject(0) )
return
end
i = i + 1
end
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
target:AddCounters( MTG():PlusOnePlusOneCounters(), 2)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your end step, bolster X, where X is the number of tapped creatures you control. |(Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.)|
|"Dragons seek war. I bring it to them."|]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local i = 0
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
if filter:CountStopAt(1) == 1 then
local subfilter = filter:AddSubFilter_Or()
while i >= 0 do
subfilter:Add( FE_TOUGHNESS, OP_EQUALS, i )
if filter:CountStopAt(2) == 2 then
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_GET_PLUS1_PLUS1_COUNTER", EffectDC():Make_Targets(0) )
return
elseif filter:CountStopAt(2) == 1 then
filter:EvaluateObjects()
EffectDC():Make_Targets(0):Set_CardPtr( 0, filter:GetNthEvaluatedObject(0) )
return
end
i = i + 1
end
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
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
filter:Add( FE_IS_TAPPED, true )
local total = filter:Count()
target:AddCounters( MTG():PlusOnePlusOneCounters(), total)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Actually, you need an intervening if. If you don't have a creature with power 4 or more at the beginning of combat, it won't trigger, and if you don't when it resolves, it should be countered. This is done with an INTERVENING_IF block.Tejahn wrote:Flamewake Phoenix
I am fully requesting this one. The code below has "At the beginning of combat on your turn, if you control a creature with power 4 or greater"... The rest of the code needs to be added. I keep having trouble adding payment costs.
- Code: Select all
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ferocious — At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return Flamewake Phoenix from your graveyard to the battlefield.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_BEGIN_COMBAT
</TRIGGER>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_BATTLEFIELD )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
</FILTER>
<RESOLUTION_TIME_ACTION filter_id="0">
local filter2 = ClearFilter()
filter2:SetZone( ZONE_BATTLEFIELD )
filter2:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter2:Add( FE_CONTROLLER, OP_IS, EffectController() )
filter2:Add( FE_POWER, OP_GREATER_THAN_OR_EQUAL_TO, 4)
if filter2:CountStopAt(1) == 1 then
if FilteredCard() ~= nil then
FilteredCard():
end
end
</RESOLUTION_TIME_ACTION>
In a filter, ZONE_BATTLEFIELD is the default. You don't need to declare it.
Note that the UTILITY_ABILITY needs to be completely outside of the triggered ability. This kind of ability can be done without the use of a utility ability, and they often are; but this is how the official cards manage it, so I'll copy that.
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ferocious — At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return Flamewake Phoenix from your graveyard to the battlefield.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_BEGIN_COMBAT
</TRIGGER>
<INTERVENING_IF>
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
filter:Add( FE_POWER, OP_GREATER_THAN_OR_EQUAL_TO, 4)
if filter:CountStopAt(1) == 1 then
return true
end
return false
</INTERVENING_IF>
<RESOLUTION_TIME_ACTION>
local effectController = EffectController()
if effectController ~= nil then
if effectController:CanPayResourceCost(1) then
effectController:BeginNewMultipleChoice()
effectController:AddMultipleChoiceAnswer( "CARD_QUERY_FLAMEWAKE_PHOENIX_RETURN_TO_THE_BATTLEFIELD" )
effectController:AddMultipleChoiceAnswer( "CARD_QUERY_FLAMEWAKE_PHOENIX_DO_NOT_RETURN_TO_THE_BATTLEFIELD" )
effectController:AskMultipleChoiceQuestion( "CARDS_QUERY_FLAMEWAKE_PHOENIX", EffectSource() )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local effectSource = EffectSource()
local effectController = EffectController()
if effectController:CanPayResourceCost(1) then
local result = EffectController():GetMultipleChoiceResult()
if result ~= 1 and effectSource ~= nil then
effectSource:PutOntoBattlefield(effectController)
effectController:PayResourceCost(1)
end
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP>
if EffectController():CanPayManaCost("{R}") then
return false
else
return true
end
</AUTO_SKIP>
</TRIGGERED_ABILITY>
<UTILITY_ABILITY resource_id="1">
<COST mana_cost="{R}" type="Mana" />
</UTILITY_ABILITY>
So, the two issues are that the first ability that should be triggering is labeled as a static ability and I type "GetGetAmount()" instead of just "GetAmount()". I don't know if there are any others, but that should fix it. HOWEVER, I realized that lifelink is a redundant type ability, not a stacking ability. If you have two Soulfire Grand Masters out, you shouldn't gain twice as much life. With this implementation, you would. So, I decided to try the simple thing and just grant lifelink to the sorceries and instants you control on the stack, and it worked. (I didn't know if the game's programmers would have included that functionality for non-permanents, but they did, so lucky us.Tejahn wrote:Soulfire Grand Master
I'm not sure this one is even possible. But have a look at this code provided by Xander9009 and let's see if it can be modified to create Soulfire Grand Master
- Code: Select all
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Instant and sorcery spells you control have lifelink.]]></LOCALISED_TEXT>
<TRIGGER value="SOURCE_DEALS_DAMAGE" simple_qualifier="objectyoucontrol" pre_trigger="1">
return TriggerObject():GetCardType():IsPermanent() == false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local Damage = Damage():GetGetAmount()
if EffectController() ~= nil and Damage > 0 then
EffectController():GainLife(Damage)
end
</RESOLUTION_TIME_ACTION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}{h}{h}: The next time you cast an instant or sorcery spell from your hand this turn, put that card into your hand instead of into your graveyard as it resolves.]]></LOCALISED_TEXT>
<COST mana_cost="{2}{U/R}{U/R}" type="Mana" />
<RESOLUTION_TIME_ACTION>
MTG():CreateDelayedTrigger(1, EffectDC():Make_Chest(1))
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<CLEANUP fire_once="1" simple_cleanup="EndOfTurn" />
<TRIGGER value="SPELL_PLAYED" simple_qualifier="controller">
return (TriggerObject():GetCardType():Test(CARD_TYPE_INSTANT) or TriggerObject():GetCardType():Test(CARD_TYPE_SORCERY)) and TriggerObject():GetErstwhileZone() == ZONE_HAND
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, TriggerObject())
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(2, delayDC)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
<CLEANUP fire_once="1" simple_cleanup="EndOfTurn" />
<TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_STACK" pre_trigger="1">
if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
TriggerObject():PutInHand()
return true
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
- Code: Select all
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Instant and sorcery spells you control have lifelink.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les sorts d’éphémère et de rituel que vous contrôlez ont le lien de vie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los hechizos de instantáneo y de conjuro que controlas tienen la habilidad de vínculo vital.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spontanzauber und Hexereien, die du kontrollierst, haben Lebensverknüpfung.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le magie istantaneo e stregoneria che controlli hanno legame vitale.]]></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[As mágicas instantâneas e os feitiços que você controla têm vínculo com a vida.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[由你操控的瞬间和法术咒语具有系命异能。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[由你操控的瞬間和巫術咒語具有繫命異能。]]></LOCALISED_TEXT>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetZone(ZONE_STACK, EffectController() )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_INSTANT )
subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY)
</FILTER>
<CONTINUOUS_ACTION layer="6" filter_id="0">
if FilteredCard() ~= nil then
FilteredCard():GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_LIFELINK, 1 )
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}{h}{h}: The next time you cast an instant or sorcery spell from your hand this turn, put that card into your hand instead of into your graveyard as it resolves.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{2}{h}{h} : La prochaine fois, ce tour-ci, que vous lancez un sort d’éphémère ou de rituel depuis votre main, mettez cette carte dans votre main à la place de votre cimetière au moment où elle se résout.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{2}{h}{h}: La próxima vez que lances un hechizo de instantáneo o de conjuro de tu mano este turno, pon esa carta en tu mano en vez de en tu cementerio en cuanto se resuelva.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{2}{h}{h}: Das nächste Mal, dass du in diesem Zug einen Spontanzauber oder eine Hexerei aus deiner Hand wirkst, nimm die Karte wieder auf deine Hand zurück, sowie sie verrechnet wird, anstatt sie auf deinen Friedhof zu legen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{2}{h}{h}: La prossima volta che lanci una magia istantaneo o stregoneria dalla tua mano in questo turno, aggiungi quella carta alla tua mano invece di metterla nel tuo cimitero mentre si risolve.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{2}{h}{h}:このターンに次にあなたがあなたの手札からインスタント・呪文かソーサリー・呪文を唱えるなら、それを解決するに際し、そのカードをあなたの墓地に置く代わりにあなたの手札に加える。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{2}{h}{h}: 이 턴에 당신의 손에서 발동된 다음 번 순간마법이나 집중마법 주문이 해결될 때, 그 카드는 당신의 무덤 대신 당신의 손으로 간다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{2}{h}{h}: в следующий раз, когда вы будете разыгрывать мгновенное заклинание или заклинание волшебства из вашей руки в этом ходу, при разрешении той карты положите ее в вашу руку вместо вашего кладбища.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{2}{h}{h}: Na próxima vez em que você conjurar uma mágica instantânea ou feitiço da sua mão neste turno, coloque aquele card na sua mão, em vez de colocá-lo no cemitério, conforme é resolvido.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{2}{h}{h}:本回合中你下一个从手上施放的瞬间或法术咒语结算时,改为将其置于你手上,而非置入你的坟墓场。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{2}{h}{h}:本回合中你下一個從手上施放的瞬間或巫術咒語結算時,改為將其置於你手上,而非置入你的墳墓場。]]></LOCALISED_TEXT>
<COST mana_cost="{2}{U/R}{U/R}" type="Mana" />
<RESOLUTION_TIME_ACTION>
MTG():CreateDelayedTrigger(1, EffectDC():Make_Chest(1))
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<CLEANUP fire_once="1" simple_cleanup="EndOfTurn" />
<TRIGGER value="SPELL_PLAYED" simple_qualifier="controller">
return (TriggerObject():GetCardType():Test(CARD_TYPE_INSTANT) or TriggerObject():GetCardType():Test(CARD_TYPE_SORCERY)) and TriggerObject():GetErstwhileZone() == ZONE_HAND
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, TriggerObject())
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(2, delayDC)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
<CLEANUP fire_once="1" simple_cleanup="EndOfTurn" />
<TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_STACK" pre_trigger="1">
if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
TriggerObject():PutInHand()
return true
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 09 Feb 2015, 16:50
I was really tired when I posted. I thought I mentioned that the Archfiend of Depravity was your code. I did code one initially but decided to use your code since the one I created crashed the game. As for the modifications, thanks! And I'm glad to know that Soulfire Grand Master is possible.
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Xander9009 » 09 Feb 2015, 17:03
No worries. I wasn't worried about not being given credit or anything. I was just embarrassed 'cause I had so many mistakesTejahn wrote:I was really tired when I posted. I thought I mentioned that the Archfiend of Depravity was your code. I did code one initially but decided to use your code since the one I created crashed the game. As fir the modifications, thanks! And I'm glad to know that Soulfire Grand Master is possible.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 09 Feb 2015, 21:02
Indeed. I've made plenty of coding mistakes. And all credit will be giving where credit is do. Speaking of which, I reached out to you in the Programming Talk section concerning Dash. Even after adding the extra snippet of code you provided the creature still returns to my hand after it dies or is exiled.
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by dantar » 19 Feb 2015, 18:30
You guys are doing God's work. This is amazing. I don't have a lot of people to test decks against in real life.
Can't wait for the release, Hero's Blade, Battle Brawler, and Brutal Hordechief are the only cards I'm missing for my standard deck!
Can't wait for the release, Hero's Blade, Battle Brawler, and Brutal Hordechief are the only cards I'm missing for my standard deck!
- dantar
- Posts: 28
- Joined: 19 Feb 2015, 18:27
- Location: OHIO, USA
- Has thanked: 19 times
- Been thanked: 1 time
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 19 Feb 2015, 23:24
I'm passing along individual Cores to Xander9009. He is looking over the white mana core now for errors. I'll be sending him the others this evening. And since you need those cards right away I'll post those three cards for you this eve as well. Thanks for responding!
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 20 Feb 2015, 02:56
Here you are dantar. The .ZIP contains Battle Brawler and Brutal Hordechief. Request Hero's Blade in the Formal Request Thread or ask Xander9009 to provided it. I don't have access to my computer at the moment and I didn't upload the ARTIFACTS CORE to my Google Drive yet. I look forward to trying your deck.
- Attachments
-
Battle Brawler and Brutal Hordechief.rar- Battle Brawler and Brutal Hordechief
- (207.41 KiB) Downloaded 283 times
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by dantar » 20 Feb 2015, 04:38
Whaaaaat! Thanks man. Can't wait to give it a try.
- dantar
- Posts: 28
- Joined: 19 Feb 2015, 18:27
- Location: OHIO, USA
- Has thanked: 19 times
- Been thanked: 1 time
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Artificer- » 20 Feb 2015, 11:35
I've been watching this post for over a month now. Can't wait for the set to come out I got a new some non meta decks In mind. Looking for mainly the izzet artifact's cards.
- Artificer-
- Posts: 4
- Joined: 20 Feb 2015, 11:17
- Has thanked: 1 time
- Been thanked: 0 time
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Tejahn » 20 Feb 2015, 14:01
I know it's been a while. And the cores are being looked over to iron out any remaining flaws. But if you need only a few cards I can provide them. Xander9009 has been a lifesaver. He has created a lot of cards, finalized many, and is proofreading the cores on a mono-color basis. I initially thought the set would be ready for early February but something went awry for me in RL. Either way, I hope to release the set soon. Thanks for anticipating!
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Xander9009 » 20 Feb 2015, 14:08
Just so everyone knows, I only got started on white last night and only for about 1.5 hours. I should be done with it today unless something unexpected pops up.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by dantar » 20 Feb 2015, 15:45
Do I need to smash these into a WAD to find them in the deck editor or can it read them as individuals?Tejahn wrote:Battle Brawler.pngBrutal Hordechief.png
Here you are dantar. The .ZIP contains Battle Brawler and Brutal Hordechief. Request Hero's Blade in the Formal Request Thread or ask Xander9009 to provided it. I don't have access to my computer at the moment and I didn't upload the ARTIFACTS CORE to my Google Drive yet. I look forward to trying your deck.
- dantar
- Posts: 28
- Joined: 19 Feb 2015, 18:27
- Location: OHIO, USA
- Has thanked: 19 times
- Been thanked: 1 time
Re: Fate Reforged (158/185) LAST UPDATED 2-7-15
by Xander9009 » 20 Feb 2015, 16:04
In the deck builder, there's an option in Tools to Setup Custom Data Folder. Click that and then you'll have a new folder in your game folder with DECK BUILDER CUSTOM in the name. In that folder, a few levels down, you'll find the folder CARDS. Drop them in there.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
58 posts
• Page 2 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: No registered users and 7 guests