Board index Programs with AI or Rules Enforcement Magic: The Gathering - Duels of the Planeswalkers Programming Talk
Need opinion about Ob Nixilis, Unshackled
Moderator: CCGHQ Admins
Need opinion about Ob Nixilis, Unshackled
by NeoAnderson » 30 Oct 2014, 16:54
I'm trying to code Ob Nixilis, Unshackled, but i still have a problem to make it full rules compliant.
The card triggers also if an opponent search another player library, and this should not happen so i need to understand if there is a possibility to identify which library the player has searched or to limit the interrogation to its library.
The card triggers also if an opponent search another player library, and this should not happen so i need to understand if there is a possibility to identify which library the player has searched or to limit the interrogation to its library.
- Ob Nixilis, Unshackled | Open
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="NEO_M15_110_OB_NIXILIS_UNSHACKLED_915383330" />
<CARDNAME text="OB_NIXILIS_UNSHACKLED" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ob Nixilis, Unshackled]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ob Nixilis, libéré de ses chaînes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Ob Nixilis liberado]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ob Nixilis der Entfesselte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ob Nixilis, Libero dai Vincoli]]></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[Ob Nixilis, Libertado]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[破枷的欧尼希兹]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[破枷的歐尼希茲]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="915383330" />
<ARTID value="915383330" />
<ARTIST name="Karl Kopinski" />
<CASTING_COST cost="{4}{B}{B}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Designed by Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Conçue par Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Diseñada por Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nach einer Idee von Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ideata da Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[デザイン:Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[디자인: Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Автор карты: Брэд Мьюир]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Criado por Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[设计者:Brad Muir]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[設計者:Brad Muir]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Demon" />
<EXPANSION value="M15" />
<RARITY metaname="R" />
<POWER value="4" />
<TOUGHNESS value="4" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, trample]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, piétinement]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, arrolla.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, verursacht Trampelschaden]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, atropelar]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[飞行,践踏]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[飛行,踐踏]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
<INTRINSIC characteristic="CHARACTERISTIC_TRAMPLE" />
</STATIC_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1" replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
local num_starting_players= MTG():GetNumberOfStartingPlayers()
for i=0,(num_starting_players-1) do
local player = MTG():GetNthStartingPlayer( i )
if (player ~= nil and player:GetTeam() ~= EffectController():GetTeam()) then
local interrogation = MTG():ClearInterrogationQuery()
interrogation:SetPlayer( player )
local value = interrogation:Count(INTERROGATE_SEARCHED_LIBRARY, INTERROGATE_THIS_TURN)
LinkedDC():Set_Int(i, value)
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1" linked_ability_group="1">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
local num_starting_players= MTG():GetNumberOfStartingPlayers()
for i=0,(num_starting_players-1) do
local player = MTG():GetNthStartingPlayer( i )
if (player ~= nil and player:GetTeam() ~= EffectController():GetTeam()) then
LinkedDC():Set_Int(i, 0)
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever an opponent searches his or her library, that player sacrifices a creature and loses 10 life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’un adversaire cherche dans sa bibliothèque, ce joueur sacrifie une créature et perd 10 points de vie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que un oponente busque en su biblioteca, ese jugador sacrifica una criatura y pierde 10 vidas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn ein Gegner seine Bibliothek durchsucht, opfert dieser Spieler eine Kreatur und verliert 10 Lebenspunkte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta un avversario passa in rassegna il suo grimorio, quel giocatore sacrifica una creatura e perde 10 punti vita.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[対戦相手1人が自分のライブラリーを探すたび、そのプレイヤーはクリーチャーを1体生け贄に捧げ、10点のライフを失う。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[상대가 자신의 서고에서 카드를 찾을 때마다, 그 플레이어는 생물 한 개를 희생하고 생명 10점을 잃는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда оппонент ищет в своей библиотеке, тот игрок жертвует существо и теряет 10 жизней.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que um oponente procura algo no próprio grimório, ele sacrifica uma criatura e perde 10 pontos de vida.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每当一位对手搜寻其牌库时,该牌手牺牲一个生物且失去10点生命。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每當一位對手搜尋其牌庫時,該玩家犧牲一個生物且失去10點生命。]]></LOCALISED_TEXT>
<TRIGGER value="SPELL_RESOLVED">
local num_starting_players= MTG():GetNumberOfStartingPlayers()
for i=0,(num_starting_players-1) do
local player = MTG():GetNthStartingPlayer( i )
if (player ~= nil and player:GetTeam() ~= EffectController():GetTeam()) then
local interrogation = MTG():ClearInterrogationQuery()
interrogation:SetPlayer( player )
local value = interrogation:Count(INTERROGATE_SEARCHED_LIBRARY, INTERROGATE_THIS_TURN)
local PlayerSearchCount = LinkedDC():Get_Int(i)
if value > PlayerSearchCount then
LinkedDC():Set_Int(i, value)
EffectDC():Set_PlayerPtr(1, player)
return true
end
end
end
return false
</TRIGGER>
<TRIGGER value="ABILITY_RESOLVED">
local num_starting_players= MTG():GetNumberOfStartingPlayers()
for i=0,(num_starting_players-1) do
local player = MTG():GetNthStartingPlayer( i )
if (player ~= nil and player:GetTeam() ~= EffectController():GetTeam()) then
local interrogation = MTG():ClearInterrogationQuery()
interrogation:SetPlayer( player )
interrogation:SetSecondaryPlayer( player )
local value = interrogation:Count(INTERROGATE_SEARCHED_LIBRARY, INTERROGATE_THIS_TURN)
local PlayerSearchCount = LinkedDC():Get_Int(i)
if value > PlayerSearchCount then
LinkedDC():Set_Int(i, value)
EffectDC():Set_PlayerPtr(1, player)
return true
end
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectDC():Get_PlayerPtr(1) ~= nil then
local player = EffectDC():Get_PlayerPtr(1)
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, player )
player:ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE", EffectDC():Make_Targets(0) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if EffectDC():Get_PlayerPtr(1) ~= nil then
local player = EffectDC():Get_PlayerPtr(1)
local ChoosenCard = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if ChoosenCard ~= nil then
player:Sacrifice( ChoosenCard )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if EffectDC():Get_PlayerPtr(1) ~= nil then
local player = EffectDC():Get_PlayerPtr(1)
player:LoseLife(10)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever another creature dies, put a +1/+1 counter on Ob Nixilis, Unshackled.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’une autre créature meurt, mettez un marqueur +1/+1 sur Ob Nixilis, libéré de ses chaînes.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que otra criatura muera, pon un contador +1/+1 sobre Ob Nixilis liberado.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn eine andere Kreatur stirbt, lege eine +1/+1-Marke auf Ob Nixilis den Entfesselten.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta un’altra creatura muore, metti un segnalino +1/+1 su Ob Nixilis, Libero dai Vincoli.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[他のクリーチャーが1体死亡するたび、解き放たれし者、オブ・ニクシリスの上に+1/+1カウンターを1個置く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[다른 생물이 죽을 때마다, 풀려난 오브 닉실리스에 +1/+1 카운터 한 개를 올려놓는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда другое существо умирает, положите один жетон +1/+1 на Об-Никсилиса, Освобожденного.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que outra criatura morrer, coloque um marcador +1/+1 em Ob Nixilis, Libertado.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每当另一个生物死去时,在破枷的欧尼希兹上放置一个+1/+1指示物。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每當另一個生物死去時,在破枷的歐尼希茲上放置一個+1/+1指示物。]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="another" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
return TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE)
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
<HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" 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" />
</CARD_V2>
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
1 post
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 7 guests