It is currently 08 Jul 2021, 04:41
   
Text Size

Community Wad

Moderators: Xander9009, CCGHQ Admins

Re: Community Wad

Postby Kithkin » 22 Jun 2015, 15:17

Bug report

Ghor-Clan Rampager -- Bloodrush is not available
User avatar
Kithkin
 
Posts: 456
Joined: 21 Feb 2014, 07:12
Location: Cologne, GERMANY
Has thanked: 11 times
Been thanked: 56 times

Re: Community Wad

Postby Xander9009 » 22 Jun 2015, 15:50

cenarius wrote:
Xander9009 wrote:
| Open
Code: Select all
<RESOLUTION_TIME_ACTION repeating="1">
   local n = MTG():GetActionRepCount()      
   local num_players = MTG():GetNumberOfPlayers()
   local index = math.floor(n/3)
   local parity = n%3
   if (index &lt; num_players) then
      local player = MTG():GetNthPlayer(index)
      if player:GetTeam() ~= EffectController():GetTeam() then
         if parity == 0 and player:CanPayResourceCost(1) then
            player:BeginNewMultipleChoice()
            player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_PAY_1", player:CanPayResourceCost(1))
            player:AddMultipleChoiceAnswer("CARD_QUERY_SACRIFICE_A_PERMANENT")
            player:AskMultipleChoiceQuestion("CARD_QUERY_RISHADAN_CUTPURSE")
         elseif parity == 1 then
            if player:CanPayResourceCost(1) and player:GetMultipleChoiceResult() == 0 then
                  player:PayResourceCost(1)
            else
               local filter = ClearFilter()
               filter:Add( FE_IS_PERMANENT, true )
               player:ChooseItem( "CARD_QUERY_CHOOSE_PERMANENT_TO_SACRIFICE", EffectDC():Make_Targets(index) )
            end
         else
            local ChoosenCard = EffectDC():Get_Targets(index) and EffectDC():Get_Targets(index):Get_CardPtr(0)
            if ChoosenCard ~= nil then
               MTG():GetNthPlayer(index):Sacrifice( ChoosenCard )
            end
         end
      end
      return true
   end
   return false
</RESOLUTION_TIME_ACTION>
Nope.

It doesn't work, and i'm starting to get nervous because there is not a single card with this kind of query and resolution to compare. The algorithm works for some things but not for others it seems... that or i'm really missing something here (which might be the case).

Is this possible? i see my code, i see yours, both are right (again, from my low expertise point of view) but both doesn't work and there is no output log file so i can get a clue of what is going on :(
After changing CanPayResourceCost(1) and PayResourceCost(1) to CanPayManaCost("{1}") and PayManaCost("{1}"). Also, the computer is able to choose manual mana tokens and mana tokens as the sacrificed permanents. To avoid that, the filter should replace filter:Add(FE_IS_PERMANENT, true) to
Code: Select all
local subfilter = filter:AddSubFilter_Or()
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER)
(At least, it appeared that's what it was doing. To be fair, if it was able to sacrifice it, it should have been able to pay it, anyway, but still. It shouldn't count as sacrificing when it wasn't. So, best to avoid it just in case.)

With those changes, my code worked. It's now in the CW (with both our names, for the record).
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby cenarius » 23 Jun 2015, 09:30

Xander9009 wrote:After changing CanPayResourceCost(1) and PayResourceCost(1) to CanPayManaCost("{1}") and PayManaCost("{1}"). Also, the computer is able to choose manual mana tokens and mana tokens as the sacrificed permanents. To avoid that, the filter should replace filter:Add(FE_IS_PERMANENT, true) to
Code: Select all
local subfilter = filter:AddSubFilter_Or()
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER)
(At least, it appeared that's what it was doing. To be fair, if it was able to sacrifice it, it should have been able to pay it, anyway, but still. It shouldn't count as sacrificing when it wasn't. So, best to avoid it just in case.)

With those changes, my code worked. It's now in the CW (with both our names, for the record).
Then update the wad man! that's the only card left so i can start working on my post. Well, it isn't essential really but i like to give players some room to play around and if you have "Rising Waters" and "Waterfront Bouncer", with "Rishadan Cutpurse" some fun is garanteed for all players... or just you :p

But damn, i can't make it work no matter what :| so i'll just wait for the update and then see what happened.

Anyway, thanks for the help, and no credit is needed man, really, i just talked and did nothing, kind of depressing.

I'm sure i'll get back with more trouble so i hope i don't bother anyone :p

EDIT: WHta is a planeswalker? what kind of card is that? i tought it was just part of the name of the game.
cenarius
 
Posts: 87
Joined: 09 Jun 2015, 14:40
Has thanked: 0 time
Been thanked: 0 time

Re: Community Wad

Postby Xander9009 » 23 Jun 2015, 13:17

cenarius wrote:
Xander9009 wrote:After changing CanPayResourceCost(1) and PayResourceCost(1) to CanPayManaCost("{1}") and PayManaCost("{1}"). Also, the computer is able to choose manual mana tokens and mana tokens as the sacrificed permanents. To avoid that, the filter should replace filter:Add(FE_IS_PERMANENT, true) to
Code: Select all
local subfilter = filter:AddSubFilter_Or()
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER)
(At least, it appeared that's what it was doing. To be fair, if it was able to sacrifice it, it should have been able to pay it, anyway, but still. It shouldn't count as sacrificing when it wasn't. So, best to avoid it just in case.)

With those changes, my code worked. It's now in the CW (with both our names, for the record).
Then update the wad man! that's the only card left so i can start working on my post. Well, it isn't essential really but i like to give players some room to play around and if you have "Rising Waters" and "Waterfront Bouncer", with "Rishadan Cutpurse" some fun is garanteed for all players... or just you :p

But damn, i can't make it work no matter what :| so i'll just wait for the update and then see what happened.

Anyway, thanks for the help, and no credit is needed man, really, i just talked and did nothing, kind of depressing.

I'm sure i'll get back with more trouble so i hope i don't bother anyone :p

EDIT: WHta is a planeswalker? what kind of card is that? i tought it was just part of the name of the game.
Have you actually not encountered any planeswalkers? They're pretty awesome. They work like this:
  • Each planeswalker has a subtype. For instance, Jace, the Mindsculpter has the subtype "Jace". Only one "Jace" planeswalkers may be on the battlefield under a player's control at a given time.
  • Each planeswalkers has a number in the lower right (denoted instead by "Loyalty X" in DotP because they aren't actually supported). They enter the battlefield with that many "Loyalty" counters.
  • Each planeswalker has abilities that start with +X or -X. That denotes that the cost to activate that particular ability is to add or remove that many loyalty counters.
  • Each planeswalker can only activate one ability per turn, and only as a sorcery.
  • When a player with a planeswalker is being dealt noncombat damage by an opponent, that opponent may opt to redirect all of that damage to a planeswalker that player controls, instead.
  • When a player attacks with a creature, that player may choose to have that creature attack a planeswalker, instead. Just as each creature can attack different players, different creatures can also attack different planeswalkers or some combination of planeswalkers and players.
  • When a planeswalker takes any damage, that many loyalty counters are removed.
  • When a planeswalker has no loyalty counters, whether from removing them to activate an ability or because they were removed due to damage, that planeswalker is put into the graveyard as a state-based action.

Also, here's the code, for reference. It'll update soon if it hasn't already.
Rishadan Cutpurse - Tested | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="RISHADAN_CUTPURSE_CW_19566" />
   <CARDNAME text="RISHADAN_CUTPURSE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="19566" />
   <ARTID value="CW19566" />
   <ARTIST name="Christopher Moeller" />
   <CASTING_COST cost="{2}{U}" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Human" />
   <SUB_TYPE metaname="Pirate" />
   <EXPANSION value="MM" />
   <RARITY metaname="C" />
   <POWER value="1" />
   <TOUGHNESS value="1" />
   <TRIGGERED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
      <RESOLUTION_TIME_ACTION repeating="1">
         local n = MTG():GetActionRepCount()      
         local num_players = MTG():GetNumberOfPlayers()
         local index = math.floor(n/3)
         local parity = n%3
         if (index &lt; num_players) then
            local player = MTG():GetNthPlayer(index)
            if player:GetTeam() ~= EffectController():GetTeam() then
               if parity == 0 and player:CanPayManaCost("{1}") then
                  player:BeginNewMultipleChoice()
                  player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_PAY_1", player:CanPayManaCost("{1}"))
                  player:AddMultipleChoiceAnswer("CARD_QUERY_SACRIFICE_A_PERMANENT")
                  player:AskMultipleChoiceQuestion("CARD_QUERY_RISHADAN_CUTPURSE")
               elseif parity == 1 then
                  if player:CanPayManaCost("{1}") and player:GetMultipleChoiceResult() == 0 then
                     player:PayManaCost("{1}")
                  else
                     local filter = ClearFilter()
                     local subfilter = filter:AddSubFilter_Or()
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
                     filter:Add( FE_CONTROLLER, OP_IS, player )
                     player:ChooseItem( "CARD_QUERY_CHOOSE_PERMANENT_TO_SACRIFICE", EffectDC():Make_Targets(index) )
                  end
               else
                  local ChoosenCard = EffectDC():Get_Targets(index) and EffectDC():Get_Targets(index):Get_CardPtr(0)
                  if ChoosenCard ~= nil then
                     player:Sacrifice( ChoosenCard )
                  end
               end
            end
            return true
         end
         return false
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
   <AUTHOR><![CDATA[cenarius, Xander9009]]></AUTHOR>
   <EDITORS><![CDATA[cenarius, Xander9009]]></EDITORS>
   <DATE><![CDATA[22-06-15, 22-06-15]]></DATE>
</CARD_V2>
And you did contribute to the code I have. I took the code you posted and put everything into a single repeating RTA and changed CanPayResourceCost to CanPayManaCost. I didn't really do anything else. So, even if you don't feel like you did much, you still did half or more of the work.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby cenarius » 23 Jun 2015, 14:29

Xander9009 wrote:Have you actually not encountered any planeswalkers? They're pretty awesome. They work like this:
  • Each planeswalker has a subtype. For instance, Jace, the Mindsculpter has the subtype "Jace". Only one "Jace" planeswalkers may be on the battlefield under a player's control at a given time.
  • Each planeswalkers has a number in the lower right (denoted instead by "Loyalty X" in DotP because they aren't actually supported). They enter the battlefield with that many "Loyalty" counters.
  • Each planeswalker has abilities that start with +X or -X. That denotes that the cost to activate that particular ability is to add or remove that many loyalty counters.
  • Each planeswalker can only activate one ability per turn, and only as a sorcery.
  • When a player with a planeswalker is being dealt noncombat damage by an opponent, that opponent may opt to redirect all of that damage to a planeswalker that player controls, instead.
  • When a player attacks with a creature, that player may choose to have that creature attack a planeswalker, instead. Just as each creature can attack different players, different creatures can also attack different planeswalkers or some combination of planeswalkers and players.
  • When a planeswalker takes any damage, that many loyalty counters are removed.
  • When a planeswalker has no loyalty counters, whether from removing them to activate an ability or because they were removed due to damage, that planeswalker is put into the graveyard as a state-based action.

Also, here's the code, for reference. It'll update soon if it hasn't already.
Rishadan Cutpurse - Tested | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="RISHADAN_CUTPURSE_CW_19566" />
   <CARDNAME text="RISHADAN_CUTPURSE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[Rishadan Cutpurse]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="19566" />
   <ARTID value="CW19566" />
   <ARTIST name="Christopher Moeller" />
   <CASTING_COST cost="{2}{U}" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Human" />
   <SUB_TYPE metaname="Pirate" />
   <EXPANSION value="MM" />
   <RARITY metaname="C" />
   <POWER value="1" />
   <TOUGHNESS value="1" />
   <TRIGGERED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[When Rishadan Cutpurse enters the battlefield, each opponent sacrifices a permanent unless he or she pays {1}.]]></LOCALISED_TEXT>
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
      <RESOLUTION_TIME_ACTION repeating="1">
         local n = MTG():GetActionRepCount()      
         local num_players = MTG():GetNumberOfPlayers()
         local index = math.floor(n/3)
         local parity = n%3
         if (index &lt; num_players) then
            local player = MTG():GetNthPlayer(index)
            if player:GetTeam() ~= EffectController():GetTeam() then
               if parity == 0 and player:CanPayManaCost("{1}") then
                  player:BeginNewMultipleChoice()
                  player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_PAY_1", player:CanPayManaCost("{1}"))
                  player:AddMultipleChoiceAnswer("CARD_QUERY_SACRIFICE_A_PERMANENT")
                  player:AskMultipleChoiceQuestion("CARD_QUERY_RISHADAN_CUTPURSE")
               elseif parity == 1 then
                  if player:CanPayManaCost("{1}") and player:GetMultipleChoiceResult() == 0 then
                     player:PayManaCost("{1}")
                  else
                     local filter = ClearFilter()
                     local subfilter = filter:AddSubFilter_Or()
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
                     subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
                     filter:Add( FE_CONTROLLER, OP_IS, player )
                     player:ChooseItem( "CARD_QUERY_CHOOSE_PERMANENT_TO_SACRIFICE", EffectDC():Make_Targets(index) )
                  end
               else
                  local ChoosenCard = EffectDC():Get_Targets(index) and EffectDC():Get_Targets(index):Get_CardPtr(0)
                  if ChoosenCard ~= nil then
                     player:Sacrifice( ChoosenCard )
                  end
               end
            end
            return true
         end
         return false
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
   <AUTHOR><![CDATA[cenarius, Xander9009]]></AUTHOR>
   <EDITORS><![CDATA[cenarius, Xander9009]]></EDITORS>
   <DATE><![CDATA[22-06-15, 22-06-15]]></DATE>
</CARD_V2>
And you did contribute to the code I have. I took the code you posted and put everything into a single repeating RTA and changed CanPayResourceCost to CanPayManaCost. I didn't really do anything else. So, even if you don't feel like you did much, you still did half or more of the work.
Thank you for this. I'll make the post today. I'll also give you my wad and the list of cards i have done to this moment so you can add them on the CW. I also hope to make two versions of my decks: CW friendly, so people can enjoy them by just getting the CW and a couple of other mods (for people that doesn't like duplicated cards), and my version, which replaces the art on several "key" cards and add them separately but inside my decks (because i can't stand the art on some cards and there could be people that think the same).

About the new planeswalker rules... well, back on those days i heard of them but never liked the idea of changing the classic old magic. Also i did heard a couple of years ago about this new "commander" zone? don't really know and don't really care, i could play the old magic forever. But thanks for explaining.

Anyway, here i go again :p

I'm currently working on "Power Sink". Just mixed "Syncopate" with "Mana Short" and voilá! power sink... or that was the idea, because for some unknown reason it doesn't work and as i don't know how to code i hope some asistance please.

Here is the code:
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="POWER_SINK_512383051" />
  <CARDNAME text="POWER_SINK" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sumidero del poder]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Power Sink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Power Sink]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="512383051" />
  <ARTID value="512383051" />
  <ARTIST name="Andrew Robinson" />
  <CASTING_COST cost="{X}{U}" />
  <TYPE metaname="Instant" />
  <EXPANSION value="VMA" />
  <RARITY metaname="U" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Contrarresta el hechizo objetivo a menos que su controlador pague {X}. Si ese jugador no lo hace, gira todas las tierras de ese jugador y vacía su fuente de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Neutralizza una magia bersaglio a meno che il suo controllore paghi {X}. Se non lo fa, quel giocatore TAPpa tutte le terre con abilità di mana che controlla e svuota la sua riserva di mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Counter target spell unless its controller pays {X}. If he or she doesn’t, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.]]></LOCALISED_TEXT>
 <SFX text="TARGET_PLASMA_PLAY" />
      <TARGET tag="CARD_QUERY_CHOOSE_SPELL_TO_COUNTER" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetZone( ZONE_STACK )
    </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local controller = target:GetPlayer()
       local mana = GetEffectX()
      local mana_string = ""
      for i=1,mana do
         mana_string = "{1}"..mana_string
      end
      if controller:CanPayManaCost(mana_string) then
         controller:SetCustomQueryInstructionValue( mana )
         controller:BeginNewMultipleChoice()   
          controller:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_PAY_"..mana )   
          controller:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_IS_COUNTERED" )
          controller:AskMultipleChoiceQuestion( "CARD_QUERY_MC_RUNE_SNAG", target )
       end
    end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
      local characteristics = target:GetCurrentCharacteristics()
       local controller = target:GetPlayer()
      local result = controller:GetMultipleChoiceResult()
       local mana = GetEffectX()
      local mana_string = ""
      for i=1,mana do
         mana_string = "{1}"..mana_string
      end
       if result == 0 and controller:CanPayManaCost(mana_string) then
         controller:PayManaCost(mana_string)
      else
         target:CounterSpell()
            local filter = ClearFilter()
            filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
            filter:Add( FE_CONTROLLER, OP_IS, controller )
            FilteredCard():Tap()
      end
    end
    </RESOLUTION_TIME_ACTION>
   
      <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
   </SPELL_ABILITY>
   <AI_BASE_SCORE score="900" zone="ZONE_HAND" />
</CARD_V2>
Here is the log i get: "[lua] [string "POWER_SINK_512383051_TITLE (RESOLUTION_TIME_ACTION)~0x00000772"]:20: attempt to index a nil value"

I'm a case, i know.

Will wait ;)
cenarius
 
Posts: 87
Joined: 09 Jun 2015, 14:40
Has thanked: 0 time
Been thanked: 0 time

Re: Community Wad

Postby Xander9009 » 23 Jun 2015, 14:49

For the art, two things: for any cards with official art you think is better, let me know. If they're just low quality, I'll see about getting better art for that card and if it's a bad version of the art, I'll see about using one of its others. That's pretty simple. Second, for unofficial art, you only have to put the art file you want to use into a wad with the same file name and make sure that the two header files each have their priority set to at least 44. The custom art will be loaded last and take precedence.

I don't really feel like planeswalkers changed too much because I was introduced to MTG just a couple of years before they came out. So, to me, everything was new. I rather like them. I can certainly understand how a lot of people aren't too fond of them, though. MaRo himself, I believe, isn't a big fan of them. He doesn't like that they kind of break the system. Since, y'know, YOU are supposed to be the planeswalker casting spells, and planeswalker cards mean you, a planeswalker, are summoning other planeswalkers... Still, I' like them.

For the Command Zone, it might help to know that that's only for a particular variation. It doesn't exist in normal games. So that one doesn't actually change anything for normal play. It only affects the new Commander variation. I've only played Commander once (because it requires a 100 card deck of entirely unique cards, sans basic lands). It was... interesting. I wasn't a huge fan, but I'd play again if my group wanted to.

Anyway, for Power Sink, the problem is the line that calls FilteredCard(). That function is for use in action blocks that have filter_id="X" (or some other number) where X is the same as filter_id="X" in a filter block.
Code: Select all
<FILTER filter_id="0">
  local TargetPlayer = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0) and EffectDC():Get_Targets(0):Get_CardPtr(0):GetPlayer()
  local filter = ClearFilter()
  filter:Add(FE_CONTROLLER, OP_IS, TargetPlayer)
  filter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
</FILTER>
Add that before your resolution time action that calls FilteredCard() and then add filter_id="0" to the <RESOLUTION_TIME_ACTION> line for the second RTA. (Then, you can also remove the three lines before "FilteredCard():Tap()".)

EDIT: It's important to note that this needs modified, though. This will not empty the mana pool. To do that, change the filter to this:
Code: Select all
<FILTER filter_id="0">
  local TargetPlayer = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0) and EffectDC():Get_Targets(0):Get_CardPtr(0):GetPlayer()
  local filter = ClearFilter()
  filter:Add(FE_CONTROLLER, OP_IS, TargetPlayer)
   local subfilter = filter:AddSubFilter_Or()
   subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_W")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_U")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_B")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_R")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_G")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_C")
</FILTER>
Those are the names of the mana tokens produced with Riiak's Manual Mana functions. So, if it's a land or one of his manual mana tokens, tap it (those tokens will exile themselves the moment they're tapped).
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby cenarius » 23 Jun 2015, 18:01

Xander9009 wrote:For the art, two things: for any cards with official art you think is better, let me know. If they're just low quality, I'll see about getting better art for that card and if it's a bad version of the art, I'll see about using one of its others. That's pretty simple. Second, for unofficial art, you only have to put the art file you want to use into a wad with the same file name and make sure that the two header files each have their priority set to at least 44. The custom art will be loaded last and take precedence.

I don't really feel like planeswalkers changed too much because I was introduced to MTG just a couple of years before they came out. So, to me, everything was new. I rather like them. I can certainly understand how a lot of people aren't too fond of them, though. MaRo himself, I believe, isn't a big fan of them. He doesn't like that they kind of break the system. Since, y'know, YOU are supposed to be the planeswalker casting spells, and planeswalker cards mean you, a planeswalker, are summoning other planeswalkers... Still, I' like them.

For the Command Zone, it might help to know that that's only for a particular variation. It doesn't exist in normal games. So that one doesn't actually change anything for normal play. It only affects the new Commander variation. I've only played Commander once (because it requires a 100 card deck of entirely unique cards, sans basic lands). It was... interesting. I wasn't a huge fan, but I'd play again if my group wanted to.

Anyway, for Power Sink, the problem is the line that calls FilteredCard(). That function is for use in action blocks that have filter_id="X" (or some other number) where X is the same as filter_id="X" in a filter block.
Code: Select all
<FILTER filter_id="0">
  local TargetPlayer = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0) and EffectDC():Get_Targets(0):Get_CardPtr(0):GetPlayer()
  local filter = ClearFilter()
  filter:Add(FE_CONTROLLER, OP_IS, TargetPlayer)
  filter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
</FILTER>
Add that before your resolution time action that calls FilteredCard() and then add filter_id="0" to the <RESOLUTION_TIME_ACTION> line for the second RTA. (Then, you can also remove the three lines before "FilteredCard():Tap()".)

EDIT: It's important to note that this needs modified, though. This will not empty the mana pool. To do that, change the filter to this:
Code: Select all
<FILTER filter_id="0">
  local TargetPlayer = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0) and EffectDC():Get_Targets(0):Get_CardPtr(0):GetPlayer()
  local filter = ClearFilter()
  filter:Add(FE_CONTROLLER, OP_IS, TargetPlayer)
   local subfilter = filter:AddSubFilter_Or()
   subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_W")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_U")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_B")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_R")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_G")
   subfilter:Add(FE_CARD_NAME, OP_IS, "TOKEN_MANA_C")
</FILTER>
Those are the names of the mana tokens produced with Riiak's Manual Mana functions. So, if it's a land or one of his manual mana tokens, tap it (those tokens will exile themselves the moment they're tapped).
I made the changes and it worked pretty well, though i tested it once. And once again you saved the day, thanks.

About the art, really, there are some things to do, i don't know if you have seen "Cursed Scroll" art for example? so yeah. And as i know some photoshop tricks, i really don't mind to spend some time in the art, actually, i love it, and most of the art from the CW are just cropped images stretched and contracted, making the art look weird. That's why i worked more in the art to fit the current modern frame. You'll get the point once you see my cards. And when you say "...the two header files each have their priority set to at least 44. The custom art will be loaded last and take precedence.", i have no idea what are you talking about. I have my files already uploaded. If you like i can give you the link and the list of cards i made myself, cards i did with your help and other people here, and the cards i re-made just because i didn't like the art. That, or you give me a short tutorial to do that trick you mentioned.

What do you think?

Let me know.
cenarius
 
Posts: 87
Joined: 09 Jun 2015, 14:40
Has thanked: 0 time
Been thanked: 0 time

Re: Community Wad

Postby Xander9009 » 23 Jun 2015, 18:09

If you don't know about Gibbed Tools, get them here: viewtopic.php?f=99&t=10463#p119100 (Note that you want the binaries). You can also get my copy here: https://drive.google.com/open?id=0B-cZn ... authuser=0 (only real difference is that it has a single exe in it which can handle all of the dropping conversions that the other tools can).

Since you already have wads made, I imagine you already have a copy, but just in case.

Anyway, drop you wad onto Gibbed.Duels.Unpack.exe and you'll get a folder. In that folder there will be a filder named @header.xml and a folder. In THAT folder there will be a file named HEADER.XML. Open those to xml files. They'll be identical. In both, you'll find a bit that says order="3". Change that to order="44". Then, rename the original folder to remove the "_unpacked" bit that the unpack utility appended, and then drop it onto Gibbed.Duels.Pack.exe. You're done. (And if you're using my universal converter, you can skip the renaming.)

EDIT: Also, for the art, if you want, you can PM me with you email address and I'll grant you access to the CW on Google Drive. Then, you can add any art you improve (as long as it's the original art at its core) and the Community Wad will automatically include any art you upload.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby cenarius » 23 Jun 2015, 18:55

Xander9009 wrote:If you don't know about Gibbed Tools, get them here: viewtopic.php?f=99&t=10463#p119100 (Note that you want the binaries). You can also get my copy here: https://drive.google.com/open?id=0B-cZn ... authuser=0 (only real difference is that it has a single exe in it which can handle all of the dropping conversions that the other tools can).

Since you already have wads made, I imagine you already have a copy, but just in case.

Anyway, drop you wad onto Gibbed.Duels.Unpack.exe and you'll get a folder. In that folder there will be a filder named @header.xml and a folder. In THAT folder there will be a file named HEADER.XML. Open those to xml files. They'll be identical. In both, you'll find a bit that says order="3". Change that to order="44". Then, rename the original folder to remove the "_unpacked" bit that the unpack utility appended, and then drop it onto Gibbed.Duels.Pack.exe. You're done. (And if you're using my universal converter, you can skip the renaming.)

EDIT: Also, for the art, if you want, you can PM me with you email address and I'll grant you access to the CW on Google Drive. Then, you can add any art you improve (as long as it's the original art at its core) and the Community Wad will automatically include any art you upload.
Well, i don't know if this kind of editing is allowed. Here you have two examples, being the left image the original art and the right my modified version (which is mostly painted further on):

"Caller Of The Hunt" and "Rathi Assassin"
Image
Link: http://oi58.tinypic.com/68czz4.jpg

"Lin Sivvi, Defiant Hero" and "Rising Waters"
Image
Link: http://i58.tinypic.com/34fl0rk.jpg

What do you think?
cenarius
 
Posts: 87
Joined: 09 Jun 2015, 14:40
Has thanked: 0 time
Been thanked: 0 time

Re: Community Wad

Postby Xander9009 » 23 Jun 2015, 19:00

Looks fine to me. And if they show up better in game than what's already in there, great. :)
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby cenarius » 23 Jun 2015, 19:10

Xander9009 wrote:Looks fine to me. And if they show up better in game than what's already in there, great. :) Also, for the art, if you want, you can PM me with you email address and I'll grant you access to the CW on Google Drive. Then, you can add any art you improve (as long as it's the original art at its core) and the Community Wad will automatically include any art you upload.
I'm happy to know is right. I really try not to "touch" the original art, though sometimes it's necessary.

Message sent.
cenarius
 
Posts: 87
Joined: 09 Jun 2015, 14:40
Has thanked: 0 time
Been thanked: 0 time

Re: Community Wad

Postby Xander9009 » 24 Jun 2015, 15:17

ATTENTION: About to do a culling. There are many cards that are duplicates with no purpose. I'll be removing these very soon. Not immediately, because that would make many decks immediately unusable. I'll be downloading the decks in the CW decks folder, making sure they all use the most recent release (the one with the higher MultiverseID), and then uploading the deck to the folder. Once these are all done, I'll remove all of the duplicate cards. I'm not sure when I'll be done, but I won't remove the duplicates any sooner than tomorrow evening. If you're only using the CW Decks, then all you have to do is redownload any decks that get messed up. If you're making your own decks and happened to use any of the duplicates I'll be deleting, you'll need to open the deck in the Riiak's Deck Builder, note which cards are missing, re-add them, change the ID back to the original, and then re-export it.

Also, I haven't suddenly stopped fixing any bugs. I'm just doing a large variety of things at the moment. My computer needs windows reinstalled soon (when I do that, the CW may not update for a couple of days, though I'll try and get it set up on my friend's computer until I'm done). I made a list of all of the cards that need looked into. Please make sure that if you had a request NOT listed on the bugs spreadsheet (I don't need a list of those, I already have one...) that it is on this list. Otherwise, you'll need to remind me:
Those are the cards/sets I'll be checking over when I get a chance. If it's not on this list or the bug report list then I don't know about it or I forgot about it.

(Speaking of which, if you're in the mood to fix something or get better art, there are a few targets. ;) )

EDIT: A few cards were just now renamed. They're not ones I was planning to do. They're ones whose MultiverseIDs were too low and were interfering with tokens. The tokens now have IDs <=300 reserved. It'll increase as more tokens are made (which will only happen with new sets; all tokens needed by cards currently in existence are coded, not just those needed by cards currently coded). There's a new utility to automate the process of renumbering tokens. I think that's why Mitotic Slime was still crashing; its tokens were different but used the same ID.

EDIT2: So, I typed up a nice long post in the programming section for general 2014 questions. Decided to check one last thing before clicking submit, and discovered the problem with Vampire Nocturnus. (This is probably the 15th or 20th time I've done that general thing, for the record. It's pretty common.) Anyway, the problem was apparently that the filter for Vampire Nocturnus's ability uses the function "Set_Or()". For whatever reason, this makes it so that the planeswalker manager messes up... No clue how. However, once I made it use a subfilter for that, it worked perfectly. The bad news is that there are many other cards that use that function, and I've just tested a couple, and yes, they do have the same problem. So...

Please do not use the function Set_Or() on a filter.

Vampire Nocturnus, however, is now working.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby Xander9009 » 28 Jun 2015, 04:56

I would like to know if anyone is interested in some possibly tedious work. I've just made a tested an ability for Blonkmoth Urn which allows you to decide how much mana should currently be available. It doesn't remove the mana or anything like that, it just makes it so that only a specified amount of manual mana may be used at a given time.

I got frustrated when my Blinkmoth Urn prevented me from casting Etched Oracle. I could use my lands to play it because they were auto-tap lands. If I manually produced mana from them, I'd still have been stuck with not being able to see which mana I was using. So, I made an ability on Blinkmoth Urn which, when activated, allows you to choose a number from 0 up to the number of colorless mana in your mana pool. All colorless mana over that amount becomes unusable until you raise the number. (And if you set it to 2 and then use one or two mana, the gaps will be filled in and up to 2 mana will still be available if you have enough). The same is true for any colored mana, each dealt with in turn.

It seems to be working pretty well, but I was hoping to include it on any cards that produce more than a few mana. I went through them, but there are a lot. And these are just the ones that can make lots of mana. It doesn't include those that make 2, 3, 4, or 5 (well, a couple can only produce 5, but oh well).
| Open
Altar of Shadows
Astral Cornucopia
Axebane Guardian
Black Mana Battery
Black Market
Blinkmoth Urn
Bloom Tender(?)
Blue Mana Battery
Braid of Fire
Caged Sun
Crypt Ghast
Dictate of Karametra(?)
Elvish Archdruid
Elvish Guidance
Everflowing Chalice
Food Chain
Green Mana Battery
Gyre Sage
Harabaz Druid
Heartbeat of Spring
Karametra's Acolyte
Keeper of Progenitus
Koth of the Hammer
Kruphix, God of Horizons
Liliana of the Dark Realms
Lotus Cobra
Magus of the Coffers
Mana Echoes
Mana Flare
Metalworker
Mirari's Wake
Nirkana Revenant
Overgrown Battlement
Priest of Titania
Priest of Yawgmoth
Red Mana Battery
Rofellos, Llanowar Emissary
Sacellum Godspeaker
Sasaya, Orochi Ascendant//Sasaya's Essence
Vernal Bloom
Vorinclex, Voice of Hunger
White Mana Battery
Xenagos, the Reveler


I've modified Sumomole's Mana Pool function, so when your mana pool is displayed, it should take into account mana not active. (Meaning it will understand than it should ignore that mana.)

As a small helpful thing, if you've reserved mana, the permanent you used to reserve that mana (currently only Blinkmoth Urn has this code, but when it's added to other cards, they're work the same way) will gain a landwalk badge or annihilator for colorless. This is a visual reminder so you don't move on to the next phase while there's still mana reserved. If you move on, that mana will be gone because this isn't a way to save the mana for later, it's just a way to more accurately control which mana you want to spend on a given spell.

I've opted to ONLY affect Blinkmoth Urn for now. If someone else could please test it and let me know if it works on your end, I'll explain how to extend this ability to any other cards (it's very easy; it's just dangerous to do with an automated tool).
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

Re: Community Wad

Postby Xenoix » 29 Jun 2015, 08:32

Just a heads up, pretty sure Profane Command has no art. (at least not on my updated copy of the CW.)
Xenoix
 
Posts: 7
Joined: 09 Feb 2015, 07:43
Has thanked: 2 times
Been thanked: 0 time

Re: Community Wad

Postby Xander9009 » 29 Jun 2015, 09:47

Xenoix wrote:Just a heads up, pretty sure Profane Command has no art. (at least not on my updated copy of the CW.)
Profane Command uses art from Modern Masters 2015, which I added just a couple of days ago. It should be available for download. Meaning your core is up to date, but your art might not be.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 444 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 3 guests

cron

Who is online

In total there are 3 users online :: 0 registered, 0 hidden and 3 guests (based on users active over the past 10 minutes)
Most users ever online was 1922 on 07 Jun 2021, 06:01

Users browsing this forum: No registered users and 3 guests

Login Form