Page 21 of 24

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

PostPosted: 08 Nov 2014, 00:29
by Tejahn
Thanks for the update fallenangel. And honestly, I created a token that uses thefiremind's Elf Warrior ArtID. Yet, I forgot to include it. Also, I don't know how to properly create art for Tokens. Any help tutoring me with Token creation would be awesome! I could actually go ahead and create the other Commander 2014 Planeswalkers. Again, thanks!

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

PostPosted: 08 Nov 2014, 02:07
by Xander9009
Tejahn wrote:Thanks for the update fallenangel. And honestly, I created a token that uses thefiremind's Elf Warrior ArtID. Yet, I forgot to include it. Also, I don't know how to properly create art for Tokens. Any help tutoring me with Token creation would be awesome! I could actually go ahead and create the other Commander 2014 Planeswalkers. Again, thanks!
https://drive.google.com/open?id=0B-cZn ... authuser=0
In that there are two images. Open one of the templates in paint. Open the token image in paint as well. Crop the token image and resize it so the image is the picture that should appear on the card and is exactly the dimensions in the name of the template. Copy the image to the template and line it up exactly with the black box. Save it as your token image. (I don't think you can change the templates, but if you can, please don't.)

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

PostPosted: 08 Nov 2014, 03:09
by Tejahn
Thanks Xander9009! I'll definitely try these templates tonight. New Planeswalkers pending... :)

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

PostPosted: 08 Nov 2014, 09:47
by Kithkin
When Magma Phoenix dies, Nissa, Worldwaker loses 3 loyalty counters. Is that according to the rules?

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

PostPosted: 08 Nov 2014, 09:54
by thefiremind
Kithkin wrote:When Magma Phoenix dies, Nissa, Worldwaker loses 3 loyalty counters. Is that according to the rules?
When Magma Phoenix dies, it deals 3 damage to each creature and each player. So Magma Phoenix's controller can decide to redirect the damage it would deal to his opponent to one of that opponent's Planeswalkers, as the rules state. You should notice that Nissa's controller won't take the damage (otherwise yes, there would be a problem).

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

PostPosted: 08 Nov 2014, 10:22
by Kithkin
thefiremind wrote:
Kithkin wrote:When Magma Phoenix dies, Nissa, Worldwaker loses 3 loyalty counters. Is that according to the rules?
When Magma Phoenix dies, it deals 3 damage to each creature and each player. So Magma Phoenix's controller can decide to redirect the damage it would deal to his opponent to one of that opponent's Planeswalkers, as the rules state. You should notice that Nissa's controller won't take the damage (otherwise yes, there would be a problem).
Understood, thanks. Next time I will watch closely, if controller loses life.

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

PostPosted: 09 Nov 2014, 07:10
by mr friendly guy
Some more planeswalkers coming out.

https://www.youtube.com/watch?v=8V4nYRxG1G8

Includes Ob Nixilis (regaining his planeswalker spark), the Lithomancer (the third mage along with Sorin and Ugin who imprisoned the Eldrazi), a Goblin planeswalker, Freyalise (that one from Ice Age).

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

PostPosted: 09 Nov 2014, 12:54
by Parabolic
mr friendly guy wrote:Some more planeswalkers coming out.

https://www.youtube.com/watch?v=8V4nYRxG1G8

Includes Ob Nixilis (regaining his planeswalker spark), the Lithomancer (the third mage along with Sorin and Ugin who imprisoned the Eldrazi), a Goblin planeswalker, Freyalise (that one from Ice Age).
Freyalise is already coded in and the others are pending, as per Tejahn.

Also, those Planeswalkers are already out in physical cards and have been known for even longer. Don't bother with youtube for spoilers. I recommend http://mythicspoiler.com/newspoilers.html

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

PostPosted: 10 Nov 2014, 15:36
by fallenangle
Updated to include Ob Nixilis of the Black Oath and Nahiri, the Lithomancer, coded by me with some major help from NeoAnderson.

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

PostPosted: 12 Nov 2014, 03:09
by fallenangle
Updated to include Daretti, Scrap Savant, coded by me. Thanks to Neo for checking my code and providing advice about rules compliance.

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

PostPosted: 14 Nov 2014, 04:10
by fallenangle
Updated to include Teferi, Temporal Archmage. Updated PW manager to account for his ultimate. Updated all PW abilities' availability and AI availability tags to make his ultimate possible. HUGE thanks to Xander9009 for coming up with the code for his ultimate and for automating the process of updating planeswalkers' abilities to be compliant with it. Teferi would not be possible without his hard work and kind assistance. Thanks also are due to thefiremind, Riiak, and Neo for their advice on the matter of Teferi's ultimate. Enjoy!

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

PostPosted: 14 Nov 2014, 14:33
by NeoAnderson
I was looking to the planeswalkers manager code, to try to understand why the game performance slow down so much when we play with planeswalkers.
I found that the most resources are used from the follow ability

Targetting override | Open
Code: Select all
  <!-- 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>
I tested the game without this override trigger and the game works without any lag.
So i was thinking if we change the trigger into a static protection action, does it could create any issue? I think could be a good performance improvement.

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

PostPosted: 14 Nov 2014, 20:28
by fallenangle
Updated all the PLWs and Teferi again to make them work better when the AI uses them. Big thanks are again due to Xander for his help in working on these and automating the changes necessary for the Availability blocks. Also updated Teferi's second ability so it works like Nissa Worldwaker's second (but with permanents rather than Forests!).

On a final note I should mention that this version is for the moment not compatible with Neo's Graphics mod update, which uses an older version of the Wad that predates Teferi. Neo can't really be blamed for this since the changes to Teferi have been so recent, but it's something worth noting.

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

PostPosted: 14 Nov 2014, 21:00
by Xander9009
NeoAnderson wrote:I was looking to the planeswalkers manager code, to try to understand why the game performance slow down so much when we play with planeswalkers.
I found that the most resources are used from the follow ability

Targetting override | Open
Code: Select all
  <!-- 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>
I tested the game without this override trigger and the game works without any lag.
So i was thinking if we change the trigger into a static protection action, does it could create any issue? I think could be a good performance improvement.
Oh, please, yes!

Code: Select all
  <!-- 7. Cards not allowed to target Planeswalkers -->
  <STATIC_ABILITY>
    <FILTER filter_id="0">
         local filter = ClearFilter()
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         PLW_FilterNameSet(filter, "PLANESWALKERS", true)
      </FILTER>
    <CONTINUOUS_ACTION layer="0" filter_id="0">
      if FilteredCard() ~= nil then
        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 FilteredCard():GetZone() ~= ZONE_BATTLEFIELD and PLW_IsInNameSet(FilteredCard(), "PLANESWALKERS") then
          filter = ClearFilter()
          PLW_FilterNameSet(filter, "TARGET_ENCHANTMENTS_NOT_CREATURES", true)
          if FilteredCard():GetCardType():Test(CARD_TYPE_CREATURE) == false then
            PLW_FilterNameSet(filter, "TARGET_ENCHANTMENTS_AND_CREATURES", true)
          end
          FilteredCard():Protection()
        end
      end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
Starting point, at least?

EDIT: Well, no luck. This ability slows it down all the time instead of just when zoomed into cards and stuff. (Also, I forgot the closing slash in the </STATIC_ABILITY>).

One way we might be able to speed it up is to use either the static or triggered ability, but instead of using the PLANESWALKERS, TARGET_ENCHANTMENTS_NOT_CREATURES, and TARGET_ENCHANTMENTS_AND_CREATURES lists, use those lists to create shorter lists of only the cards which actually exist within the current duel. With shorter lists, it should be able to run a bit faster. You could put the lists in object dc chests within each player's planeswalker manager.

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

PostPosted: 14 Nov 2014, 21:17
by NeoAnderson
Xander9009 wrote:
NeoAnderson wrote:I was looking to the planeswalkers manager code, to try to understand why the game performance slow down so much when we play with planeswalkers.
I found that the most resources are used from the follow ability

Targetting override | Open
Code: Select all
  <!-- 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>
I tested the game without this override trigger and the game works without any lag.
So i was thinking if we change the trigger into a static protection action, does it could create any issue? I think could be a good performance improvement.
Oh, please, yes!

Code: Select all
  <!-- 7. Cards not allowed to target Planeswalkers -->
  <STATIC_ABILITY>
    <FILTER filter_id="0">
         local filter = ClearFilter()
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         PLW_FilterNameSet(filter, "PLANESWALKERS", true)
      </FILTER>
    <CONTINUOUS_ACTION layer="0" filter_id="0">
      if FilteredCard() ~= nil then
        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 FilteredCard():GetZone() ~= ZONE_BATTLEFIELD and PLW_IsInNameSet(FilteredCard(), "PLANESWALKERS") then
          filter = ClearFilter()
          PLW_FilterNameSet(filter, "TARGET_ENCHANTMENTS_NOT_CREATURES", true)
          if FilteredCard():GetCardType():Test(CARD_TYPE_CREATURE) == false then
            PLW_FilterNameSet(filter, "TARGET_ENCHANTMENTS_AND_CREATURES", true)
          end
          FilteredCard():Protection()
        end
      end
    </CONTINUOUS_ACTION>
  <STATIC_ABILITY>
Starting point, at least?
Xander now i am revising the frame pictures, I will check when finished how to revert this trigger into a protection.
Anyway the concept is simple we need to add FE_CARD_NAME for each spell included into listed cards that can target enchantments, then we need to protect the planeswalkers.