Re: Community Wad
Bug report: Decree of Silence won't be sacrificed when it has three or more depletion counters.
High Quality Resources for Collectible Card Games and Home of the CCGHQ Team
https://www.slightlymagic.net/forum/
https://www.slightlymagic.net/forum/viewtopic.php?f=109&t=15783
thanks, it would be really good if we can get them to work how you say they should be.Xander9009 wrote:"Can attack as though it didn't have defender" is an approximation. I came up with the idea, but I didn't implement it myself, so I don't know the specifics of how it works. However, if I recall correctly, it's supposed to remove defender and then add a fake characteristic for defender (but without the "can't attack" bit, so basically just the text). All cards which count or target defenders are supposed to count both the defender characteristic and the fake defender characteristic. So, Assault Formation OR Axebane Guardian may be messed up. I'll look into them.
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="NOVA_CHASER_CW_140239" />
<CARDNAME text="NOVA_CHASER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Nova Chaser]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chasse-nova]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cazadora de novas]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nova-Verfolger]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Cacciatrice di Stelle]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[新星追い]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Nova Chaser]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Охотница на Новые Звезды]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Caçador de Nova]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="140239" />
<ARTID value="CW140239" />
<ARTIST name="Dan Scott" />
<CASTING_COST cost="{3}{R}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Elemental" />
<SUB_TYPE metaname="Warrior" />
<EXPANSION value="LRW" />
<RARITY metaname="R" />
<POWER value="10" />
<TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Trample]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Piétinement]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arrolla.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verursacht Trampelschaden]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Travolgere]]></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[Atropelar]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_TRAMPLE" />
</STATIC_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Champion an Elemental]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Appui d’élémental]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Amparar un Elemental.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Beschütze ein Elementarwesen]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Battersi per un Elementale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[覇権(エレメンタル)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Champion an Elemental]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Заступитесь за Элементаля]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Acuda um Elemental]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_ELEMENTAL )
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
LinkedDC():Set_CardPtr(0, target)
LinkedDC():Protect_CardPtr(0)
target:Exile()
else
EffectController():Sacrifice(EffectSource())
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = LinkedDC():Get_CardPtr(0)
local source = EffectSource()
if target ~= nil and source ~= nil then
target:NailOnto(source)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
local target = LinkedDC():Get_CardPtr(0)
if target ~= nil then
target:PutOntoBattlefield( target:GetOwner() )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<HELP title="MORE_INFO_TITLE_CHAMPION" body="MORE_INFO_BODY_CHAMPION" zone="ZONE_ANY" />
<HELP title="MORE_INFO_BADGE_TITLE_1" body="MORE_INFO_BADGE_BODY_1" zone="ZONE_ANY" />
<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[migookman]]></AUTHOR>
<EDITORS><![CDATA[migookman]]></EDITORS>
<DATE><![CDATA[05-10-15]]></DATE>
</CARD_V2>
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="CONFLAGRATE_CW_114909" />
<CARDNAME text="CONFLAGRATE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Conflagrate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Conflagration]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Conflagrar]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Flammenbrunst]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conflagrazione]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[燃焼]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Conflagrate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Поджог]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conflagrar]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="114909" />
<ARTID value="CW114909" />
<ARTIST name="Warren Mahy" />
<CASTING_COST cost="{X}{X}{R}" />
<TYPE metaname="Sorcery" />
<EXPANSION value="TSP" />
<RARITY metaname="U" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Conflagrate deals X damage divided as you choose among any number of target creatures and/or players.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La Conflagration inflige X blessures réparties comme vous le désirez entre n’importe quel nombre de cibles, créatures et/ou joueurs.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Conflagrar hace X puntos de daño divididos como elijas entre cualquier número de criaturas y/o jugadores objetivo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Flammenbrunst fügt X Schadenspunkte zu, deren Verteilung auf eine beliebige Anzahl an Kreaturen und/oder Spielern deiner Wahl du bestimmst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La Conflagrazione infligge X danni suddivisi a tua scelta tra un qualsiasi numero di creature e/o giocatori bersaglio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[望む数のクリーチャーかプレイヤー(またはその組み合わせ)を対象とする。燃焼は、それらにX点のダメージを好きなように割り振って与える。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Conflagrate deals X damage divided as you choose among any number of target creatures and/or players.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Поджог наносит X повреждений, разделенных по вашему выбору между любым количеством целевых существ и/или игроков.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conflagrar causa X pontos de dano, distribuídos à sua escolha a qualquer número de criaturas alvo e/ou jogadores alvo.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_DEAL_1_DAMAGE" definition="0" compartment="0" damage_assignment="1">
if EffectSource():GetErstwhileZone() ~= ZONE_GRAVEYARD then
LinkedDC():Set_Int(100, GetEffectX() )
end
MTG():SetTargetCount( LinkedDC():Get_Int(100) )
</TARGET>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType(FILTER_TYPE_CARDS + FILTER_TYPE_PLAYERS)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local source = EffectSourceLKI()
local targetDC = EffectDC():Get_Targets(0)
local num = LinkedDC():Get_Int(100)
for i=0,num-1 do
local target_creature = targetDC:Get_CardPtr(i)
local target_player = targetDC:Get_PlayerPtr(i)
local damage = targetDC:Get_Assignment(i)
if target_creature ~= nil then
source:DealDamageTo(damage, target_creature)
elseif target_player ~= nil then
source:DealDamageTo(damage, target_player)
end
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
<SFX text="GLOBAL_DISASTER_PLAY" />
</SPELL_ABILITY>
<UTILITY_ABILITY qualifier="Flashback" active_zone="ZONE_GRAVEYARD">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flashback—{R}{R}, Discard X cards.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flashback — {R}{R}, défaussez-vous de X cartes.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Retrospectiva—{R}{R}, descartar X cartas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rückblende—{R}{R}, wirf X Karten aus deiner Hand ab.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Flashback-{R}{R}, Scarta X carte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[フラッシュバック ― {R}{R}, カードをX枚捨てる。 (あなたはフラッシュバック・コストで、このカードをあなたの墓地からプレイしてもよい。 その後それをゲームから取り除く)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Flashback—{R}{R}, Discard X cards.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Воспоминание—{R}{R}, Сбросьте X карт.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Recapitular—{R}{R}, Descarte X cards.]]></LOCALISED_TEXT>
<COST mana_cost="{R}{R}" type="Mana" />
<COST type="Generic">
<PREREQUISITE>
return true
</PREREQUISITE>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
filter:SetZone( ZONE_HAND, EffectController() )
local handCount = filter:Count()
EffectController():SetItemCount( handCount )
for i=0, (handCount-1) do
EffectController():SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_DISCARD" )
end
EffectController():ChooseItems( EffectDC():Make_Targets(1), QUERY_FLAG_UP_TO )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local targetDC = EffectDC():Get_Targets(1)
if targetDC ~= nil then
local number = targetDC:Count()
LinkedDC():Set_Int(100, number )
for i = 0,(number-1) do
local target_card = targetDC:Get_CardPtr(i)
target_card:Discard()
end
end
</RESOLUTION_TIME_ACTION>
</COST>
</UTILITY_ABILITY>
<AUTHOR><![CDATA[migookman]]></AUTHOR>
<EDITORS><![CDATA[migookman]]></EDITORS>
<DATE><![CDATA[06-07-15]]></DATE>
</CARD_V2> <AUTO_SKIP>
local filter = ClearFilter()
filter:SetZone(ZONE_GRAVEYARD)
local total = filter:Count()
if total >= 15 then
return true
end
return false
</AUTO_SKIP> <AUTO_SKIP>
local effectController = EffectController()
if effectController:GetTeam():IsSharedLifeTotal() == true then
if effectController:GetLifeTotal() >= 30 then
return true
end
else
if effectController:GetLifeTotal() >= 20 then
return true
end
end
return false
</AUTO_SKIP> <AUTO_SKIP>
if TFM_AnyOpponentBloodied() == false then
return true
end
return false
</AUTO_SKIP> <AUTO_SKIP>
local effectController = EffectController()
if effectController:CanPayManaCost("{8}") then
return true
end
return false
</AUTO_SKIP> <AUTO_SKIP no_effect_source="1">
return EffectSourceLKI():CountCounters(MTG():GetCountersType("PlusOnePlusOne")) >= 5
</AUTO_SKIP> <AUTO_SKIP no_effect_source="1">
return EffectSourceLKI():CountCounters(MTG():GetCountersType("Quest")) >= 2
</AUTO_SKIP> <AUTO_SKIP>
local effectController = EffectController()
if effectController():Hand_Count() == total >=7 then
return true
end
return false
</AUTO_SKIP><AUTO_SKIP>
local effectController = EffectController()
if effectController():Hand_Count() == total >=7 then
return true
end
return false
</AUTO_SKIP><AUTO_SKIP>
local effectController = EffectController()
if 9 == total >=7 then
return true
end
return false
</AUTO_SKIP><AUTO_SKIP>
local effectController = EffectController()
if 9 == nil >=7 then ;Hand count is 9. "total" isn't a known variable, so it'll be nil.
return true
end
return false
</AUTO_SKIP><AUTO_SKIP>
local effectController = EffectController()
if nil >=7 then ;"9 == nil" doesn't make any sense, so it'll be nil.
return true
end
return false
</AUTO_SKIP><AUTO_SKIP>
local effectController = EffectController()
if nil then ;"nil >=7" also doesn't make any sense, so it becomes nil, which is false, and it'll always return false.
return true
end
return false
</AUTO_SKIP><AUTO_SKIP>
return EffectController():Hand_Count() >= 7
</AUTO_SKIP><AUTO_SKIP>
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, EffectController())
filter:Add(FE_CARD_NAME, OP_IS, "KNIGHT ALLY")
filter:Add(FE_IS_TOKEN, true)
return filter:CountStopAt(5) == 5
</AUTO_SKIP><AUTO_SKIP>
local filter = ClearFilter()
filter:Add(FE_CONTROLLER, OP_IS, EffectController())
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
return filter:CountStopAt(9) == 9 or (TriggerObject() ~= nil and TriggerObject():GetController():GetTeam() ~= EffectController():GetTeam())
</AUTO_SKIP>Thanks for all that Xander. I'll go and implement them now (well, maybe not right now, but soon).
cool, do you know any cards that have something similar that I could cheat off? or does this mean you've implemented (or at least coded) it already and it just needs to be tested?Xander9009 wrote:For persist, I haven't tested it, but I have an idea to make it do what you want. Whenever its persist ability activates, increment an ObjectDC() counter. Make the Auto_Skip check that counter. Protect the ObjectDC.
-- Put this in an RTA inside the persist ability
<RESOLUTION_TIME_ACTION>
RSN_ObjectDC():Int_Inc(0)
</RESOLUTION_TIME_ACTION>
-- Put this inside the persist ability as well
<AUTO_SKIP>
return RSN_ObjectDC():Get_Int(0) >= 2
</AUTO_SKIP
-- Make this a new ability entirely (obviously). Copied directly from Soul Summons.
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY"> -- Permanently protect ObjectDC
<TRIGGER value="ZONECHANGE_CONSIDERED" pre_trigger="1" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
RSN_ProtectObjectDC()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
It doesn't seem to be workingXander9009 wrote:I don't know of any card that uses this and I haven't made the code myself at all. It should be pretty simple though.
- Code: Select all
-- Put this in an RTA inside the persist ability
<RESOLUTION_TIME_ACTION>
RSN_ObjectDC():Int_Inc(0)
</RESOLUTION_TIME_ACTION>
- Code: Select all
-- Put this inside the persist ability as well
<AUTO_SKIP>
return RSN_ObjectDC():Get_Int(0) >= 2
</AUTO_SKIPIn case it's not obvious, my previous "this isn't tested" still applies lol.
- Code: Select all
-- Make this a new ability entirely (obviously). Copied directly from Soul Summons.
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY"> -- Permanently protect ObjectDC
<TRIGGER value="ZONECHANGE_CONSIDERED" pre_trigger="1" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
RSN_ProtectObjectDC()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>