It is currently 01 Aug 2025, 15:11
   
Text Size

TFM&G2K's Planeswalkers Pool v8g (12/Sep/2014)

Moderator: CCGHQ Admins

Re: TFM&G2K's Planeswalkers Pool v8c (18/Aug/2014)

Postby kr2033 » 21 Aug 2014, 06:55

first of all, I'm not good at english.
so if you explain easily when you help me about this problem, I'll appreciate it.

1.Nissa, Worldwaker's third ability doesn't work
{-7}:Search your library for any number of basic land cards, put them onto the battlefield, then shuffle your library. Those lands become 4/4 Elemental creatures with trample. They’re still lands.

The lands that I choose don't become 4/4 creature.(and have no trample)
And they are not tapped.

2.Is it impossible to do not Planeswalkers affect to Someting else that is ralated enchantment?(ex.Yavimaya Enchantress)
kr2033
 
Posts: 6
Joined: 20 Aug 2014, 08:29
Has thanked: 3 times
Been thanked: 1 time

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby thefiremind » 21 Aug 2014, 08:37

kr2033 wrote:Nissa, Worldwaker's third ability doesn't work
Fixed. Download the new version.

kr2033 wrote:Is it impossible to do not Planeswalkers affect to Someting else that is ralated enchantment?(ex.Yavimaya Enchantress)
You need a different version of the card (e.g. Yavimaya Enchantress) that takes my approximation into account. But someone has to code it first. :wink: As far as I know, gorem2k is working on a "complementary set" that will include those cards.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby kr2033 » 21 Aug 2014, 12:30

1.Nissa, Worldwaker's third ability doesn't work
{-7}:Search your library for any number of basic land cards, put them onto the battlefield, then shuffle your library. Those lands become 4/4 Elemental creatures with trample. They’re still lands.

They are still not tapped
kr2033
 
Posts: 6
Joined: 20 Aug 2014, 08:29
Has thanked: 3 times
Been thanked: 1 time

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby gorem2k » 21 Aug 2014, 12:55

thefiremind wrote:As far as I know, gorem2k is working on a "complementary set" that will include those cards.
Yes, slowly but surely.

Speaking of which, I will need your help for a custom function to filter Enchantment taking Enchanted Evening in consideration.

I came up with this:

| Open
Code: Select all
PLW_FilterEnchantments = function()
-- Resets filter and exclude/include the possibility of Enchanted Evening effect in play.
       local filter = ClearFilter()
       filter:Add(FE_CARD_NAME, OP_IS, "ENCHANTED_EVENING" )
       if filter:CountStopAt(1) == 0 then
          local filter = ClearFilter()
          filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
          PLW_FilterNameSet(filter, "PLANESWALKERS", false ) -- NO Enchanted Evening; exclude planeswalkers.
           else
          local filter = ClearFilter()
          filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       end
end
It was originally inside a PLW compatible Yavimaya Enchantress but it doesn't look right, I want to keep filtering after I run this function. something like
PLW_FilterEnchantments = function(filter). I'm not good with AddSubFilter_Or And and all that :lol:

EDIT: this is another one, let me know if this is appropriate or if you can come up with something better.

| Open
Code: Select all
PLW_FilterEnchantments = function(filter)
-- filter enchantment including the possibility of Enchanted Evening effect in play.
    if filter ~= nil then
       local subFilter = filter:AddSubFilter_Or()
       subFilter:Add(FE_CARD_NAME, OP_IS, "ENCHANTED_EVENING" )
       if filter:CountStopAt(1) == 0 then
          filter:Clear()
          filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
          PLW_FilterNameSet(filter, "PLANESWALKERS", false ) -- NO Enchanted Evening; exclude planeswalkers.
       else
          filter:Clear()
          filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       end
    end
end
Last edited by gorem2k on 21 Aug 2014, 14:36, edited 2 times in total.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby gorem2k » 21 Aug 2014, 13:08

kr2033 wrote:1.Nissa, Worldwaker's third ability doesn't work
{-7}:Search your library for any number of basic land cards, put them onto the battlefield, then shuffle your library. Those lands become 4/4 Elemental creatures with trample. They’re still lands.

They are still not tapped
The ability does exactly what it says.

Image
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby sweetLu » 21 Aug 2014, 13:21

You may want to look into using a solution that is more involved. There may be other cards out there that can turn planeswalkers into enchantments. For things turn planeswalkers into enchantments maybe you could grant the planeswalker a custom characteristic using Riiak's custom characteristics dlc. Then to filter for enchantments you would check for cards that are enchantments but not in the planeswalker nameset OR cards that have your custom characteristic. Of course this may overcomplicate things and cause other issues but you may want to give yourself some more flexibility beyond checking for cards in play named Enchanted Evening.
sweetLu
 
Posts: 181
Joined: 16 Jul 2014, 01:24
Has thanked: 21 times
Been thanked: 22 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby gorem2k » 21 Aug 2014, 13:40

sweetLu wrote:You may want to look into using a solution that is more involved. There may be other cards out there that can turn planeswalkers into enchantments. For things turn planeswalkers into enchantments maybe you could grant the planeswalker a custom characteristic using Riiak's custom characteristics dlc. Then to filter for enchantments you would check for cards that are enchantments but not in the planeswalker nameset OR cards that have your custom characteristic. Of course this may overcomplicate things and cause other issues but you may want to give yourself some more flexibility beyond checking for cards in play named Enchanted Evening.
Well, TFM took only that particular card exception in his LOL (other than those who directly target a planeswalker). If you know what else can globally change planeswalker type then he will also have to consider this as well.

I'm focusing on what is not covered in the main PLW mod.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby kr2033 » 22 Aug 2014, 07:01

Here is few more problems I found.

1.Ajani Steadfast's third ability has bug

Ajani has 8 counters and use ult. so now he has just 1 counter.
then opponent's turn, opponent's creature attack my Ajani.
Ajani loses his last 1 counter, but he is NOT dead.
and he can use his 1st ability and gains a counter of course.


2.Sulfurous Blast deals damage to Planeswalkers

Sulfurous blast cast and all of planeswalkers on the battlefield take damage and lose their loyalty counters


I'm sorry to my bad English.
kr2033
 
Posts: 6
Joined: 20 Aug 2014, 08:29
Has thanked: 3 times
Been thanked: 1 time

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby gorem2k » 22 Aug 2014, 08:04

Please make sure you have the newest version of DATA_DLC_PLW.wad

version 8d has a new different way to verify counters and has not been tested fully. this may need some more time to have it work 100%. I would suggest thefiremind to keep a fail-safe version along with a beta version when there's a somewhat risky change.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby thefiremind » 22 Aug 2014, 08:18

gorem2k wrote:Please make sure you have the newest version of DATA_DLC_PLW.wad

version 8d has a new different way to verify counters and has not been tested fully. this may need some more time to have it work 100%. I would suggest thefiremind to keep a fail-safe version along with a beta version when there's a somewhat risky change.
I just tried to make an enemy beat my Nissa, Worldwaker through attacks and she correctly died with no loyalty counters left. I haven't tried with Ajani, but the only thing his ultimate does is to instruct the manager to always remove 1 counter instead of the normal amount, so I can't see why it should be different.

About Sulfurous Blast, how many Planeswalkers did you have on the battlefield? With only one, it's perfectly fine that the enemy decides to redirect the damage you would receive from Sulfurous Blast to your Planeswalker. If there were more than one and all of them got damaged, I don't know what to say.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby gorem2k » 22 Aug 2014, 08:49



This happened when I had the emblem.

I'm now testing with
Code: Select all
return CounterTypeIndex() == MTG():GetCountersType("Loyalty") and PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
instead of

Code: Select all
return GetAmount() &lt; 0 and CounterTypeIndex() == MTG():GetCountersType("Loyalty") and PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
same result. maybe COUNTERS_CHANGED is faulty and doesn't check at every possible moment. my other idea would be to directly put that trigger individually on each planeswalker... would save even more work to CPU

my second hypothesis, maybe since AI and I have both have manager and it's a replacement effect that's happening at same time, then one of them is cancelled by the other? << nope.

Ok, I think the problem is because Ajani Steadfast has this:
Code: Select all
  <TRIGGERED_ABILITY replacement_effect="1" resource_id="1">
    <CLEANUP>
    return EffectController() == nil
    </CLEANUP>
    <TRIGGER value="SOURCE_DEALS_DAMAGE_TO_PLAYER" pre_trigger="1" damage_type="all">
    return SecondaryPlayer() == EffectController()
    </TRIGGER>
    <TRIGGER value="SOURCE_DEALS_DAMAGE_TO_OBJECT" pre_trigger="1" damage_type="all">
    return SecondaryObject():GetPlayer() == EffectController() and
    SecondaryObject():GetType():Test(CARD_TYPE_CREATURE) and
    PLW_IsInNameSet( SecondaryObject(), "PLANESWALKERS" )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local damage = Damage():GetAmount()
    Damage():PreventAmount(damage-1)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
While the manager also use these triggers..

OK!

Here's the modifications I've made. It looks weird but seems to work.

manager | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="8">
  <FILENAME text="_PLANESWALKERS_MANAGER_991800002" />
  <CARDNAME text="_PLANESWALKERS_MANAGER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレインズウォーカー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[플레인즈워커]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Planeswalker]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="991800002" />
  <ARTID value="0" />
  <ARTIST name="Nobody" />
  <CASTING_COST cost="" />
  <TYPE metaname="" />
  <EXPANSION value="DPI" />
  <RARITY metaname="C" />

  <!-- Invisible token protection -->
  <STATIC_ABILITY>
    <CONTINUOUS_ACTION layer="8">
    if EffectSource() ~= nil then
       local characteristics = EffectSource():GetCurrentCharacteristics()
       characteristics:Bool_Set(CHARACTERISTIC_SHROUD, 1)
       characteristics:Bool_Set(CHARACTERISTIC_INDESTRUCTIBLE, 1)
       characteristics:AI_SetWorthless()
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="8">
    if EffectSource() ~= nil then
       local filter = ClearFilter()
       filter:Add(FE_CMC, OP_GREATER_THAN_OR_EQUAL_TO, 0)
       EffectSource():Protection()
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>

  <!-- Planeswalker rules -->

  <!-- 1. Planeswalker goes to the graveyard when it has no loyalty counters left -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="COUNTERS_CHANGED" simple_qualifier="objectyoucontrol">
    return GetAmount() &lt; 0 and CounterTypeIndex() == MTG():GetCountersType("Loyalty") and PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="objectyoucontrol" to_zone="ZONE_BATTLEFIELD">
    return PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil and TriggerObject():CountCounters( MTG():GetCountersType("Loyalty") ) == 0 then
       TriggerObject():PutInGraveyard()
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <!-- 2. Planeswalkers' "Legendary rule" -->
  <TRIGGERED_ABILITY replacement_query="1">
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="objectyoucontrol" to_zone="ZONE_BATTLEFIELD">
    return PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    MTG():ClearFilterMark()
    local tobj = TriggerObject()
    local filter = ClearFilter()
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    PLW_FilterNameSet(filter, "PLANESWALKERS", true)
    local filter_count = filter:EvaluateObjects()
    if filter:CountStopAt(2) == 2 then
       for i=0,filter_count-1 do
          local card = filter:GetNthEvaluatedObject(i)
          if PLW_GetSubType(card) == PLW_GetSubType(tobj) then
             card:MarkForFilter()
          end
       end
       filter:SetMarkedObjectsOnly()
       if filter:CountStopAt(2) == 2 then
          EffectController():ChooseItem( "PLW_CARD_QUERY_CHOOSE_PLANESWALKER_TO_SAVE", EffectDC():Make_Targets(0) )
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local to_keep = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if to_keep ~= nil then
       local filter = ClearFilter()
       filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
       PLW_FilterNameSet(filter, "PLANESWALKERS", true)
       local filter_count = filter:EvaluateObjects()
       for i=0,filter_count-1 do
          local card = filter:GetNthEvaluatedObject(i)
          if card ~= to_keep and PLW_GetSubType(card) == PLW_GetSubType( TriggerObject() ) then
             card:PutInGraveyard()
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <!-- 3. Planeswalkers' abilities can be played only once per turn -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="ACTIVATED_ABILITY_PLAYED" simple_qualifier="objectyoucontrol">
    if not PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" ) then
       return false
    end
    local activations_chest = PLW_MyDuelDC():Get_Chest(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
    if activations_chest == nil then
       activations_chest = PLW_MyDuelDC():Make_Chest(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
    end
    -- Find the Planeswalker
    local current_index = -1
    local last_index = activations_chest:Get_Int(0)
    if last_index &gt; 0 then
       for i=1,last_index,2 do
          local card = activations_chest:Get_CardPtr(i)
          if card ~= nil and card == TriggerObject() then
             -- Planeswalker found
             current_index = i
             break
          end
       end
    else
       last_index = -1 -- this will make it right when adding 2 later
    end
    if current_index == -1 then
       -- Planeswalker not found, let's add it
       last_index = last_index + 2
       activations_chest:Set_Int(0, last_index)
       activations_chest:Set_CardPtr( last_index, TriggerObject() )
       activations_chest:Set_Int(last_index+1, 0)
       current_index = last_index
    end
    -- Increase Planeswalker's activations count (1 register further than the card pointer)
    activations_chest:Int_Inc(current_index+1)
    -- Increase player's own activations count (will be used by The Chain Veil's first ability)
    PLW_MyPlayerDC( EffectController() ):Int_Inc(PLW_PLANESWALKERS_ACTIVATIONS)
    -- Save Planeswalker's activations count index for continuous action
    EffectDC():Set_Int(1, current_index+1)
    return true
    </TRIGGER>
    <CONTINUOUS_ACTION layer="8">
    if TriggerObject() ~= nil then
       local activations_chest = PLW_MyDuelDC():Get_Chest(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
       if activations_chest ~= nil then
          local loyalty_activations = activations_chest:Get_Int( EffectDC():Get_Int(1) )
          local chain_veil_activations = PLW_MyPlayerDC( TriggerObject():GetController() ):Get_Int(PLW_CHAIN_VEIL_ACTIVATIONS)
          if loyalty_activations &gt; chain_veil_activations then
             TriggerObject():GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1)
          end
       end
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_CLEANUP
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    PLW_MyDuelDC():Free_Compartment(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
    for i=0,MTG():GetNumberOfPlayers()-1 do
       local player_chest = PLW_MyPlayerDC( MTG():GetNthPlayer(i) )
       player_chest:Set_Int(PLW_PLANESWALKERS_ACTIVATIONS, 0)
       player_chest:Set_Int(PLW_CHAIN_VEIL_ACTIVATIONS, 0)
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <!-- 4. Damage redirection -->
  <TRIGGERED_ABILITY replacement_query="1" linked_ability_group="1">
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="SOURCE_DEALS_DAMAGE_TO_PLAYER" pre_trigger="1" damage_type="noncombat">
    if LinkedDC():Get_Int(0) ~= 1 then
       if SecondaryPlayer() == EffectController() and TriggerObject():GetPlayer():GetTeam() ~= EffectController():GetTeam() then
          local filter = ClearFilter()
          filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
          PLW_FilterNameSet(filter, "PLANESWALKERS", true)
          if filter:CountStopAt(1) == 1 then
             EffectDC():Set_Int( 2, Damage():GetAmount() )
             Damage():Multiply(0)
             return true
          end
       end
    else
       LinkedDC():Set_Int(0, 0) -- reset the flag
    end
    return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local source = TriggerObject()
    if source ~= nil then
       local player = source:GetPlayer()
       if player ~= nil then
          local filter = ClearFilter()
          filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
          PLW_FilterNameSet(filter, "PLANESWALKERS", true)
          player:ChooseItem( "PLW_CARD_QUERY_CHOOSE_PLANESWALKER_REDIRECT_DAMAGE_TO", EffectDC():Make_Targets(1), QUERY_FLAG_MAY )
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
    local amount = EffectDC():Get_Int(2)
    if target ~= nil then
       PLW_SetLastDamager( target, TriggerObject() )
       TriggerObject():DealDamageTo(amount, target)
       if target:GetCardType():Test(CARD_TYPE_CREATURE) == false then -- if it's not a creature, dealing damage doesn't do anything
          if PLW_MyPlayerDC( target:GetController() ):Get_Int(PLW_AJANI_STEADFAST_EMBLEM) == 0 then
             target:RemoveCounters( MTG():GetCountersType("Loyalty"), amount )
          else
             target:RemoveCounters( MTG():GetCountersType("Loyalty"), 1 )
          end
       end
    else
       LinkedDC():Set_Int(0, 1) -- set this flag so the trigger won't trigger again this time
       if PLW_MyPlayerDC( SecondaryPlayer() ):Get_Int(PLW_AJANI_STEADFAST_EMBLEM) == 1 then
          TriggerObject():DealDamageTo( 1, SecondaryPlayer() )
       else
          TriggerObject():DealDamageTo( amount, SecondaryPlayer() )
       end
    end
    -- APPROXIMATION: if the damage is unpreventable, this way I'm removing that characteristic
    -- APPROXIMATION: if the Planeswalker isn't a creature, damage triggers from the source won't trigger
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <!-- 5. Attacking Planeswalkers -->
  <STATIC_ABILITY>
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
    </FILTER>
    <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local filter = ClearFilter()
       filter:Add( FE_CARD_NAME, OP_IS, EffectSource() )
       filter:EvaluateObjects()
       if EffectSource() == filter:GetNthEvaluatedObject(0) then -- only 1 manager should grant the ability
          FilteredCard():GetCurrentCharacteristics():GrantAbility(0)
       end
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY replacement_query="1" resource_id="0">
    <TRIGGER value="ATTACKING" simple_qualifier="self" />
    <RESOLUTION_TIME_ACTION>
    local defending = TriggerObject() and TriggerObject():GetPlayerAttacked()
    if defending ~= nil then
       local filter = ClearFilter()
       filter:Add(FE_CONTROLLER, OP_IS, defending)
       PLW_FilterNameSet(filter, "PLANESWALKERS", true)
       if filter:CountStopAt(1) == 1 then
          EffectController():ChooseItem( "PLW_CARD_QUERY_CHOOSE_PLANESWALKER_TO_ATTACK", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
       end
    end
    -- APPROXIMATION: a creature attacking a Planeswalker shouldn't be counted as attacking the player
    </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 defending = TriggerObject() and TriggerObject():GetPlayerAttacked()
       if defending ~= nil and defending:IsAI() == false then
          defending:SetCustomQueryInstructionCardPtr(target)
          defending:BeginNewMultipleChoice()
          defending:AddMultipleChoiceAnswer("CONTROL_MB_CONFIRM")
          defending:AskMultipleChoiceQuestion( "PLW_CARD_QUERY_ATTACKED_PLANESWALKER", TriggerObject() )
       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 delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr( 0, TriggerObject() )
       delayDC:Set_CardPtr(1, target)
       MTG():CreateDelayedTrigger(1, delayDC)
    else
       MTG():CreateDelayedTrigger(1, nil)
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1" resource_id="1">
    <CLEANUP>
    return MTG():GetStep() == STEP_END_OF_COMBAT
    </CLEANUP>
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="SOURCE_DEALS_DAMAGE_TO_PLAYER" damage_type="combat" pre_trigger="1">
    if TriggerObject() == EffectDC():Get_CardPtr(0) then
       local target = EffectDC():Get_CardPtr(1)
       if target ~= nil then
          local amount = Damage():GetAmount()
          if target:GetCardType():Test(CARD_TYPE_CREATURE) then
             PLW_SetLastDamager( target, TriggerObject() )
             Damage():RedirectAllTo(target)
          else
             Damage():Multiply(0)
             if PLW_MyPlayerDC( target:GetController() ):Get_Int(PLW_AJANI_STEADFAST_EMBLEM) == 0 then
                target:RemoveCounters( MTG():GetCountersType("Loyalty"), amount )
             else
                target:RemoveCounters( MTG():GetCountersType("Loyalty"), 1 )
             end
             MTG():CreateDelayedTrigger( 2, EffectDC() )
          end
       end
       return true
    else
       -- damage done to player
       if PLW_MyPlayerDC( SecondaryPlayer() ):Get_Int(PLW_AJANI_STEADFAST_EMBLEM) == 1 then
          local damage = Damage():GetAmount()
          Damage():PreventAmount(damage-1)
       end
    end
    return false
    -- APPROXIMATION: if the Planeswalker isn't a creature, damage triggers from the source won't trigger
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY forced_skip="1" resource_id="2">
    <CLEANUP fire_once="1" />
    <TRIGGER value="STATE_BASED_EFFECTS" />
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_CardPtr(1)
    if target ~= nil then
       PLW_SetLastDamager( target, EffectDC():Get_CardPtr(0) )
       MTG():FireTrigger( TRIGGER_OBJECT_TAKES_DAMAGE, target )
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <!-- 6. Damage to Planeswalker creatures (this works only for Gideon when he becomes a creature) -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="OBJECT_TAKES_DAMAGE">
    return PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
       local amount = Damage() and Damage():GetAmount()
       if amount ~= nil then
          TriggerObject():RemoveCounters( MTG():GetCountersType("Loyalty"), amount )
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <!-- 7. Cards not allowed to target Planeswalkers -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="CARD_CONSIDERED_FOR_TARGETTING" pre_trigger="1">
    local target = TriggerObject()
    local filter = ClearFilter()
    filter:Add(FE_CARD_NAME, OP_IS, "ENCHANTED_EVENING") -- With Enchanted Evening on the battlefield, Planeswalkers would be enchantments for real
    if filter:CountStopAt(1) == 0 or target:GetZone() ~= ZONE_BATTLEFIELD then
       local targetter = SecondaryObject()
       if PLW_IsInNameSet(target, "PLANESWALKERS") and
       ( PLW_IsInNameSet(targetter, "TARGET_ENCHANTMENTS_NOT_CREATURES") or
       (target:GetCardType():Test(CARD_TYPE_CREATURE) == false and
       PLW_IsInNameSet(targetter, "TARGET_ENCHANTMENTS_AND_CREATURES")) ) then
          MTG():OverrideEvent()
          return true
       end
    end
    return false
    </TRIGGER>
  </TRIGGERED_ABILITY>

  <!-- 8. Planeswalker type hack -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="objectyoucontrol" to_zone="ZONE_BATTLEFIELD">
    if TriggerObject():GetCardType():Test(CARD_TYPE_PLANESWALKER) then
       EffectDC():Protect_CardPtr(COMPARTMENT_ID_PARAM_TRIGGER_OBJECT)
       return true
    end
    return false
    </TRIGGER>
    <CONTINUOUS_ACTION layer="1">
    if TriggerObject() ~= nil then
       local characteristics = TriggerObject():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local supertype = characteristics:SuperType_GetWritable()
       card_type:Clear()
       -- I chose "Basic Snow Enchantment", it seems the only safe choice.
       -- I avoided Legendary since we are already managing the Planeswalkers' "Legendary rule" manually.
       card_type:Add(CARD_TYPE_ENCHANTMENT)
       supertype:Add(SUPERTYPE_BASIC)
       supertype:Add(SUPERTYPE_SNOW)
    end
    </CONTINUOUS_ACTION>
    <DURATION>
    return TriggerObject() == nil
    </DURATION>
  </TRIGGERED_ABILITY>

  <AI_BASE_SCORE score="-5000" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
ajani steadfast | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="AJANI_STEADFAST_991383180" />
  <CARDNAME text="AJANI_STEADFAST" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ajani Steadfast]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ajani l’inébranlable]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Ajani tenaz]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ajani der Standhafte]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ajani l’Incrollabile]]></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[Ajani Resoluto]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="991383180" />
  <ARTID value="991383180" />
  <ARTIST name="Chris Rahn" />
  <CASTING_COST cost="{3}{W}" />
  <TYPE metaname="Planeswalker" />
  <TYPE metaname="Enchantment" />
  <SUB_TYPE metaname="Ajani" />
  <EXPANSION value="M15" />
  <RARITY metaname="M" />
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|(Loyalty 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[|(Loyauté 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[|(Lealtad 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[|(Loyalität 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[|(Fedeltà 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[(忠誠 4)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[|(충성 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[|(Верность 4)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[|(Lealdade 4)|]]></LOCALISED_TEXT>
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():AddCounters( MTG():GetCountersType("Loyalty"), 4 )
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(+1): Until end of turn, up to one target creature gets +1/+1 and gains first strike, vigilance, and lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[(+1) : Jusqu’à la fin du tour, jusqu’à une créature ciblée gagne +1/+1 et acquiert l’initiative, la vigilance et le lien de vie.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[(+1): Hasta el final del turno, hasta una criatura objetivo obtiene +1/+1 y gana las habilidades de dañar primero, vigilancia y vínculo vital.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[(+1): Bis zum Ende des Zuges erhält bis zu eine Kreatur deiner Wahl +1/+1, Erstschlag, Wachsamkeit und Lebensverknüpfung.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[(+1): Fino alla fine del turno, fino a una creatura bersaglio prende +1/+1 e ha attacco improvviso, cautela e legame vitale.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[(+1):クリーチャーを最大1体まで対象とする。ターン終了時まで、それは+1/+1の修整を受けるとともに先制攻撃と警戒と絆魂を得る。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[(+1): 생물을 최대 한 개까지 목표로 정한다. 그 생물은 턴종료까지 +1/+1을 받고 선제공격과 경계, 생명연결을 얻는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[(+1): до конца хода не более чем одно целевое существо получает +1/+1 и Первый удар, Бдительность и Цепь жизни.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[(+1): Até o final do turno, até uma criatura alvo recebe +1/+1 e ganha iniciativa, vigilância e vínculo com a vida.]]></LOCALISED_TEXT>
    <AVAILABILITY sorcery_time="1" />
    <COST type="generic">
      <PREREQUISITE>
      return true
      </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
      if EffectSource() ~= nil then
         PLW_ShutDownDoublingSeason()
         EffectSource():AddCounters( MTG():GetCountersType("Loyalty"), 1 )
      end
      </RESOLUTION_TIME_ACTION>
    </COST>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_1_1" definition="0" compartment="0" count="1" up_to="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
    </TARGET_DEFINITION>
    <CONTINUOUS_ACTION layer="7C">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local characteristics = target:GetCurrentCharacteristics()
       characteristics:Power_Add(1)
       characteristics:Toughness_Add(1)
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_FIRST_STRIKE, 1)
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_VIGILANCE, 1)
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_LIFELINK, 1)
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED_ONLY" />
  </ACTIVATED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(-2): Put a +1/+1 counter on each creature you control and a loyalty counter on each other planeswalker you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[(-2) : Mettez un marqueur +1/+1 sur chaque créature que vous contrôlez et un marqueur « loyauté » sur chaque autre planeswalker que vous contrôlez.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[(-2): Pon un contador +1/+1 sobre cada criatura que controlas y un contador de lealtad sobre cada uno de los otros planeswalkers que controlas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[(-2): Lege eine +1/+1-Marke auf jede Kreatur, die du kontrollierst, und eine Loyalitätsmarke auf jeden anderen Planeswalker, den du kontrollierst.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[(-2): Metti un segnalino +1/+1 su ogni creatura che controlli e un segnalino fedeltà su ogni altro planeswalker che controlli.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[(-2):あなたがコントロールする各クリーチャーの上に+1/+1カウンターをそれぞれ1個、あなたがコントロールする他の各プレインズウォーカーの上に忠誠カウンターをそれぞれ1個置く。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[(-2): 당신이 조종하는 각 생물에 +1/+1 카운터 한 개를 올려놓고 당신이 조종하는 다른 모든 플레인즈워커에 충성 카운터 한 개를 올려놓는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[(-2): положите один жетон +1/+1 на каждое существо под вашим контролем и один жетон верности на каждого другого planeswalker-а под вашим контролем.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[(-2): Coloque um marcador +1/+1 em cada criatura que você controla e um marcador de lealdade em cada outro planeswalker que você controla.]]></LOCALISED_TEXT>
    <AVAILABILITY sorcery_time="1" />
    <COST type="RemoveCountersSelf" amount="2" counter_type="Loyalty" />
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
    <FILTER filter_id="1">
    local filter = ClearFilter()
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
    PLW_FilterNameSet(filter, "PLANESWALKERS", true)
    </FILTER>
    <RESOLUTION_TIME_ACTION filter_id="0">
    if FilteredCard() ~= nil then
       FilteredCard():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION filter_id="1">
    if FilteredCard() ~= nil then
       FilteredCard():AddCounters( MTG():GetCountersType("Loyalty"), 1 )
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(-7): You get an emblem with “If a source would deal damage to you or a planeswalker you control, prevent all but 1 of that damage.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[(-7) : Vous gagnez un emblème avec « Si une source devait infliger des blessures à vous ou à un planeswalker que vous contrôlez, prévenez toutes ces blessures sauf 1. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[(-7): Obtienes un emblema con “Si una fuente fuera a hacerte daño a ti a o a un planeswalker que controlas, prevén todo excepto 1 punto de ese daño”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[(-7): Du erhältst ein Emblem mit „Falls eine Quelle dir oder einem Planeswalker, den du kontrollierst, Schaden zufügen würde, verhindere alle bis auf 1 dieser Schadenspunkte.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[(-7): Ottieni un emblema con “Se una fonte sta per infliggere danno a te o a un planeswalker che controlli, previeni tutto il danno tranne 1”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[(-7):あなたは「発生源があなたかあなたがコントロールするプレインズウォーカーにダメージを与えるなら、そのダメージを1点を残してすべて軽減する。」を持つ紋章を得る。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[(-7): 당신은 “어느 원천이 당신 또는 당신이 조종하는 플레인즈워커에게 피해를 입히려 한다면, 그 피해 중 1점을 제외한 모든 피해를 방지한다.”를 가진 휘장을 얻는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[(-7): вы получаете эмблему со способностью «Если источник должен нанести повреждения вам или planeswalker-у под вашим контролем, предотвратите все те повреждения, кроме 1».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[(-7): Você recebe um emblema com “Se uma fonte for causar dano a você ou a um planeswalker que você controla, previna todo o dano menos 1 ponto.”]]></LOCALISED_TEXT>
    <AVAILABILITY sorcery_time="1" />
    <COST type="RemoveCountersSelf" amount="7" counter_type="Loyalty" />
    <RESOLUTION_TIME_ACTION>
    PLW_MyPlayerDC( EffectController() ):Set_Int(PLW_AJANI_STEADFAST_EMBLEM, 1)
    </RESOLUTION_TIME_ACTION>
    <SFX text="GLOBAL_BIORHYTHM_PLAY" />
  </ACTIVATED_ABILITY>

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

  <HELP title="MORE_INFO_BADGE_TITLE_0" body="MORE_INFO_BADGE_BODY_0" zone="ZONE_ANY" />
  <HELP title="MORE_INFO_BADGE_TITLE_4" body="MORE_INFO_BADGE_BODY_4" zone="ZONE_ANY" />
  <HELP title="MORE_INFO_BADGE_TITLE_13" body="MORE_INFO_BADGE_BODY_13" zone="ZONE_ANY" />
  <AI_COUNTER_SCORE type="Loyalty" score="100" />
  <AI_BASE_SCORE score="600" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
May also need some modification to rule #6. I think the damage is not controlled there.. I'm tired :-&

It's unfortunate that AI never split his choices when attacking with 2 or more creature, it's either all on a planeswalker or all on the player...
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby kr2033 » 24 Aug 2014, 11:23

1.Hellhole Rats
When Hellhole Rats enters the battlefield, target player discards a card. Hellhole Rats deals damage to that player equal to that card's converted mana cost.

Ashiok, Nightmare Weaver is in the battlefield under my control.
then opponent's Hellhole rats enter the battlefield, and I discard another Ashiok.
but AI didn't deal damage to me, but Ashiok take damage and loses 3 counters.

2.Sedraxis Alchemist
When Sedraxis Alchemist enters the battlefield, if you control a blue permanent, return target nonland permanent to its owner's hand

Ashiok, Nightmare Weaver is in the battlefield under my control.
then opponent's Sedraxis Alchemist enter the battlefield, and he target the Ashiok.
But Ashiok go into graveyard instead return to my hand
kr2033
 
Posts: 6
Joined: 20 Aug 2014, 08:29
Has thanked: 3 times
Been thanked: 1 time

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby thefiremind » 24 Aug 2014, 12:32

kr2033 wrote:1.Hellhole Rats
When Hellhole Rats enters the battlefield, target player discards a card. Hellhole Rats deals damage to that player equal to that card's converted mana cost.

Ashiok, Nightmare Weaver is in the battlefield under my control.
then opponent's Hellhole rats enter the battlefield, and I discard another Ashiok.
but AI didn't deal damage to me, but Ashiok take damage and loses 3 counters.
Same as Sulfurous Blast. Do you know how Planeswalkers work? Read the last paragraph from here.

kr2033 wrote:2.Sedraxis Alchemist
When Sedraxis Alchemist enters the battlefield, if you control a blue permanent, return target nonland permanent to its owner's hand

Ashiok, Nightmare Weaver is in the battlefield under my control.
then opponent's Sedraxis Alchemist enter the battlefield, and he target the Ashiok.
But Ashiok go into graveyard instead return to my hand
Try to bounce a Planeswalker from the battlefield to its owner's hand with another card. If it works, then the problem is in the Sedraxis Alchemist you are using.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby kr2033 » 24 Aug 2014, 15:32

Hellhole Rats,Sulfurous Blast

I'm sorry, it was my ignorance


Sedraxis Alchemist

I test some of spells have bounce
Into the Roil,Disperse etc..
At least all spells I tested made same result like Sedraxis Alchemist.
Corretly Planeswalker is not go into owner's graveyard, but it look's like discarded.
I use(or oponent uses) bounce spell to Planeswalker on the battlefield and it goes into the graveyard with discard motion
kr2033
 
Posts: 6
Joined: 20 Aug 2014, 08:29
Has thanked: 3 times
Been thanked: 1 time

Re: TFM&G2K's Planeswalkers Pool v8d (21/Aug/2014)

Postby gorem2k » 24 Aug 2014, 16:02

kr2033 wrote:Hellhole Rats,Sulfurous Blast

I'm sorry, it was my ignorance


Sedraxis Alchemist

I test some of spells have bounce
Into the Roil,Disperse etc..
At least all spells I tested made same result like Sedraxis Alchemist.
Corretly Planeswalker is not go into owner's graveyard, but it look's like discarded.
I use(or oponent uses) bounce spell to Planeswalker on the battlefield and it goes into the graveyard with discard motion
True, it goes to graveyard instead of hand.

I think it's because the counters are removed while it bounce. Again another problem with the new COUNTERS_CHANGED.

doing some tests, I came up with this...

| Open
Code: Select all
  <!-- 1. Planeswalker goes to the graveyard when it has no loyalty counters left -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="COUNTERS_CHANGED" simple_qualifier="objectyoucontrol">
    return GetAmount() &lt; 0 and CounterTypeIndex() == MTG():GetCountersType("Loyalty") and PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="objectyoucontrol" to_zone="ZONE_BATTLEFIELD">
    return PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <INTERVENING_IF>
    local filter = ClearFilter()
    filter:SetZone(ZONE_STACK)
    return filter:CountStopAt(1) == 0
    </INTERVENING_IF>
    <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil and TriggerObject():CountCounters( MTG():GetCountersType("Loyalty") ) == 0 then
       TriggerObject():PutInGraveyard()
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
Bouncing a Planeswalker is working now. And when you simply use its last loyalty counter, it goes to graveyard. I didn't test with damage tho.

actually, this would be better:
| Open
Code: Select all
  <!-- 1. Planeswalker goes to the graveyard when it has no loyalty counters left -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
    <TRIGGER value="COUNTERS_CHANGED" simple_qualifier="objectyoucontrol">
    return GetAmount() &lt; 0 and CounterTypeIndex() == MTG():GetCountersType("Loyalty") and PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="objectyoucontrol" to_zone="ZONE_BATTLEFIELD">
    return PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil and TriggerObject():CountCounters( MTG():GetCountersType("Loyalty") ) == 0 then
       local filter = ClearFilter()
       filter:SetZone(ZONE_STACK)
       if filter:CountStopAt(1) == 0 then
          TriggerObject():PutInGraveyard()
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
yet another problem, now when using my Fated Conflagration to kill a planeswalker, it doesn't go to graveyard. But Dreadbore works.. strange. I think we should go back to STATE_BASED_EFFECT. Yep, I vote for that since COUNTERS_CHANGED is too finicky
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 11 guests

Main Menu

User Menu

Our Partners


Who is online

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

Users browsing this forum: No registered users and 11 guests

Login Form