thefiremind wrote:I saw your code, but unfortunately it doesn't help me because you are getting the sacrifices for the Patrol's controller only, and only when it's already on the battlefield. Also, you are using the same LinkedDC register for both abilities (including the one you haven't pasted here), how does that work?
EDIT: I found the problem. I haven't bothered to check before, but Int_Inc doesn't exist anymore in Magic Duels. Now if you want to do Int_Inc(x), you need to do Int_Add(x, 1). The Patrol now works if the Clues are sacrificed when it's already on the battlefield. I just need to make the LinkedDC chest persistent somehow.
EDIT 2: Done! I updated the previous post with the working code.
Good! I hadn't noticed that I was reusing the register. I'd never sacrificed clues before
and after dealing damage with him, so it'd never been a problem. Moved the sacrifice tracking into a sub-chest. I tried just changing the linked_ability_group="1" to ="2", but it didn't work. I tested multiple linked ability groups it before and could have sworn it worked... Oh well. Didn't end up using it on any cards anyway.
Int_Inc being removed is certainly not the issue I would have expected...
I also went ahead and added the ability to track multiple players sacrificing clues and gaining control of the card. Here's the tested code for that, if you'd like to see how the GetGlobalIndex() can simplify things. (But with Int_Inc, not Int_Add. Though that's a really simple change.)
- Briarbridge Patrol - 2014 | Open
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="BRIARBRIDGE_PATROL_CW_409953" />
<CARDNAME text="BRIARBRIDGE_PATROL" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Briarbridge Patrol]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Patrouille du Pont de Bruyère]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Patrulla de Puentespino]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Dornstrauchweg-Patrouille]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Pattuglia di Ponterovo]]></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[Patrulheiro de Pontespinho]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[荆桥巡卫]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[荊橋巡衛]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="409953" />
<ARTID value="BRIARBRIDGE_PATROL" />
<ARTIST name="Greg Opalinski" />
<CASTING_COST cost="{3}{G}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Human" />
<SUB_TYPE metaname="Warrior" />
<EXPANSION value="SOI" />
<RARITY metaname="U" />
<POWER value="3" />
<TOUGHNESS value="3" />
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Briarbridge Patrol deals damage to one or more creatures, investigate.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que la Patrouille du Pont de Bruyère inflige des blessures à au moins une créature, enquêtez.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que la Patrulla de Puentespino haga daño a una o más criaturas, investiga.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn die Dornstrauchweg-Patrouille einer oder mehreren Kreaturen Schaden zufügt, stelle Nachforschungen an.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta la Pattuglia di Ponterovo infligge danno a una o più creature, indaga.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[茨橋の巡回兵がクリーチャー1体以上にダメージを与えるたび、調査を行う。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[들장미 교각 순찰병이 한 개 이상의 생물에 피해를 입힐 때마다, 조사한다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда Дозорная Тернового Пути наносит повреждения одному или нескольким существам, используйте Дознание.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Patrulheiro de Pontespinho causar dano a uma ou mais criaturas, investigue.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每当荆桥巡卫对一个或数个生物造成伤害时,探查。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每當荊橋巡衛對一個或數個生物造成傷害時,探查。]]></LOCALISED_TEXT>
<TRIGGER value="SOURCE_DEALS_DAMAGE_TO_OBJECT" simple_qualifier="self" damage_type="combat">
if TriggerObject():GetOwner() == EffectController() then
LinkedDC():Int_Inc(0)
end
return SecondaryObject():GetCardType():Test(CARD_TYPE_CREATURE) and LinkedDC():Get_Int(0) == 1
</TRIGGER>
<PLAY_TIME_ACTION>
LinkedDC():Clear()
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
CW_General_FireTrigger(CW_TRIGGER_INVESTIGATE, EffectSourceLKI():GetController())
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
CW_Tokens("CLUE_A_C_S")
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="2">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each end step, if you sacrificed three or more Clues this turn, you may put a creature card from your hand onto the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de chaque étape de fin, si vous avez sacrifié au moins 3 indices ce tour-ci, vous pouvez mettre sur le champ de bataille une carte de créature de votre main.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al principio de cada paso final, si sacrificaste tres o más pistas este turno, puedes poner una carta de criatura de tu mano en el campo de batalla.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn jedes Endsegments und falls du in diesem Zug drei oder mehr Hinweise geopfert hast, kannst du eine Kreaturenkarte aus deiner Hand ins Spiel bringen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio di ogni sottofase finale, se hai sacrificato tre o più Indizi in questo turno, puoi mettere sul campo di battaglia una carta creatura dalla tua mano.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各終了ステップの開始時に、あなたがこのターンに手掛かりを3つ以上生け贄に捧げていた場合、あなたはあなたの手札からクリーチャー・カードを1枚戦場に出してもよい。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[각 종료단의 시작에, 당신이 이 턴에 단서를 세 개 이상 희생했다면, 당신은 생물 카드 한 장을 당신의 손에서 전장에 놓을 수 있다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале каждого заключительного шага, если в этом ходу вы пожертвовали не менее трех Улик, вы можете положить карту существа из вашей руки на поле битвы.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de cada etapa final, se você sacrificou três ou mais Pistas neste turno, você pode colocar um card de criatura de sua mão no campo de batalha.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在每个结束步骤开始时,若本回合中你牺牲了三个或更多线索,则你可以将一张生物牌从你手上放进战场。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在每個結束步驟開始時,若本回合中你犧牲了三個或更多線索,則你可以將一張生物牌從你手上放進戰場。]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<INTERVENING_IF ignore_resolution_check="1">
return LinkedDC():Get_Int(EffectController():GetGlobalIndex()) >= 3
</INTERVENING_IF>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:SetZone(ZONE_HAND, EffectController())
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
EffectController():ChooseItem("CARD_QUERY_CHOOSE_CREATURE_TO_PUT_ONTO_BATTLEFIELD", 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
Target:PutOntoBattlefield(EffectController())
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1" linked_ability_group="2" active_zone="ZONE_ANY">
<TRIGGER value="SACRIFICE">
return TriggerObject():GetSubType():Test(ARTIFACT_TYPE_CLUE)
</TRIGGER>
<RESOLUTION_TIME_ACTION>
LinkedDC():Int_Inc(TriggerPlayer():GetGlobalIndex())
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1" linked_ability_group="2" active_zone="ZONE_ANY">
<TRIGGER value="BEGINNING_OF_TURN" />
<RESOLUTION_TIME_ACTION>
LinkedDC():Clear()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_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>
RSN_Characteristics_CreateManagers()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="_MANAGER_CHARACTERISTICS" />
<TOKEN_REGISTRATION reservation="1" type="TOKEN_CLUE_A_C_S_CW_1" />
<TOKEN_REGISTRATION reservation="1" type="TOKEN_CLUE_A_C_S_CW_2" />
<TOKEN_REGISTRATION reservation="1" type="TOKEN_CLUE_A_C_S_CW_3" />
<TOKEN_REGISTRATION reservation="1" type="TOKEN_CLUE_A_C_S_CW_4" />
<TOKEN_REGISTRATION reservation="1" type="TOKEN_CLUE_A_C_S_CW_5" />
<TOKEN_REGISTRATION reservation="1" type="TOKEN_CLUE_A_C_S_CW_6" />
<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[Xander9009]]></AUTHOR>
<EDITORS><![CDATA[Xander9009, Xander9009, Xander9009, Xander9009]]></EDITORS>
<DATE><![CDATA[18-04-16, 28-04-16, 09-05-16, 05-06-16]]></DATE>
</CARD_V2>
EDIT: Nevermind. I DID test that awhile back, and I just tried again, and this time it worked. Earlier I'd missed an "end" in another ability, and I think that might have interfered. This means no chests are needed, which combined with the GetGlobalIndex being used to avoid the loops makes the code pretty simple.
I tested it by sacrificing before, during, and after dealing damage and changing control. The AI even sacrificed some donated clues and then I gave it the patrol and it behaved properly. This code seems to work fine in all situations except 2.
1) It didn't work when I played it from my library AFTER sacrificing the clues.
2) If a token copy is made of the
Briarbridge Patrol after sacrificing clues, that token wouldn't have the necessary information, because it didn't exist. The same would hold true for making a creature a copy of the patrol. I'm not sure it's
worth fixing, considering how rare such a series of events would be, but the ways I'm currently thinking of that might deal with it are either to move the tracking to a manager token or to a PlayerDataChest, which itself would be easiest to do without having multiple cards trying to increment the registers for one sacrifice by using a manager. It should be do-able using only functions, though.