Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
2014




Coding Mana Bloom
Moderator: CCGHQ Admins
Coding Mana Bloom
by Zarroc » 06 Aug 2013, 18:19
Hi to everyone
After lurking around couple of months, i finally decided to code some cards
I started coding Mana Bloom and most of the code works fine but i am struggling with "Activate this ability only once each turn."
[lua] [string "MANA_BLOOM_500253592_TITLE (RESOLUTION_TIME_ACTION)~0x000002e2"]:3: attempt to index a nil value
[lua] ?:0: attempt to index a nil value
I think I'm getting something wrong with the DataChest. Hope you guys can help
Edit:
I'm using the DC to store an integer which indicates whether the ability was used.
After lurking around couple of months, i finally decided to code some cards

- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="MANA_BLOOM_500253592" />
<CARDNAME text="MANA_BLOOM" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Mana Bloom]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Floraison de mana]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Florecimiento de maná]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Manablüte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fioritura di Mana]]></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[Florescência de Mana]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="500253592" />
<ARTID value="500253592" />
<ARTIST name="Mike Bierek" />
<CASTING_COST cost="{X}{G}" />
<TYPE metaname="Enchantment" />
<EXPANSION value="RTR" />
<RARITY metaname="R" />
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Mana Bloom enters the battlefield with X charge counters on it.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La Floraison de mana arrive sur le champ de bataille avec X marqueurs « charge » sur elle.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[El Florecimiento de maná entra al campo de batalla con X contadores de carga sobre él.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Manablüte kommt mit X Ladungsmarken ins Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La Fioritura di Mana entra nel campo di battaglia con X segnalini carica.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[マナの花は、蓄積カウンターがX個置かれた状態で戦場に出る。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[마나 만발은 충전 카운터 X개를 가진 채로 전장에 들어온다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Расцвет Маны выходит на поле битвы с X жетонами заряда на нем.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Florescência de Mana entra no campo de batalha com X marcadores de carga.]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Charge" proliferate="11" />
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
RSN_GetObjectDC(EffectSource(), true):Int_Set(0,0)
EffectSource():AddCounters( MTG():GetCountersType("Charge"), EffectSource():GetPaidX())
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Remove a charge counter from Mana Bloom: Add one mana of any color to your mana pool. Activate this ability only once each turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Retirez un marqueur « charge » de la Floraison de mana : Ajoutez un mana de la couleur de votre choix à votre réserve. N’activez cette capacité qu’une seule fois par tour.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Remover un contador de carga del Florecimiento de maná: Agrega un maná de cualquier color a tu reserva de maná. Activa esta habilidad sólo una vez cada turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entferne eine Ladungsmarke von der Manablüte: Erhöhe deinen Manavorrat um ein Mana einer beliebigen Farbe. Aktiviere diese Fähigkeit nur einmal pro Zug.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rimuovi un segnalino carica dalla Fioritura di Mana: Aggiungi un mana di un qualsiasi colore alla tua riserva di mana. Attiva questa abilità solo una volta per turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[マナの花の上から蓄積カウンターを1個取り除く:あなたのマナ・プールに、好きな色1色のマナ1点を加える。この能力は、毎ターン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[Remova um marcador de carga de Florescência de Mana: Adicione um mana de qualquer cor à sua reserva de mana. Ative esta habilidade apenas uma vez a cada turno.]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Charge" proliferate="11" />
<COST type="RemoveCountersSelf" amount="1" counter_type="Charge" />
<AVAILABILITY>
return RSN_GetObjectDC(EffectSource()):Int_Get(0) == 0
</AVAILABILITY>
<RESOLUTION_TIME_ACTION>
local player = EffectController()
player:BeginNewMultipleChoice()
player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MANA_W" )
player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MANA_U" )
player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MANA_B" )
player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MANA_R" )
player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MANA_G" )
player:AskMultipleChoiceQuestion( "CARD_QUERY_CHOOSE_COLOUR" )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local colour = EffectController():GetMultipleChoiceResult()
if (colour == 0) then
RSN_Produce( "{W}", 1 )
elseif (colour == 1) then
RSN_Produce( "{U}", 1)
elseif (colour == 2) then
RSN_Produce( "{B}", 1)
elseif (colour == 3) then
RSN_Produce( "{R}", 1)
elseif (colour == 4) then
RSN_Produce( "{G}", 1)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_EliminateExtraManaTokens()
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
S_DisplayManaPool(EffectController())
RSN_GetObjectDC(EffectSource()):Set_Int( 0, 1 )
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, if Mana Bloom has no charge counters on it, return it to its owner’s hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, si la Floraison de mana n’a aucun marqueur « charge » sur elle, renvoyez-la dans la main de son propriétaire.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, si el Florecimiento de maná no tiene contadores de carga sobre él, regrésalo a la mano de su propietario.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls zu Beginn deines Versorgungssegments keine Ladungsmarken auf der Manablüte liegen, bringe sie auf die Hand ihres Besitzers zurück.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del tuo mantenimento, se la Fioritura di Mana non ha segnalini carica, falla tornare in mano al suo proprietario.]]></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[No início de sua manutenção, se Florescência de Mana não tiver um marcador, devolva-a para a mão de seu dono.]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Charge" proliferate="11" />
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
RSN_GetObjectDC(EffectSource()):Int_Set(0, 0)
if EffectSource():CountCounters(MTG():GetCountersType("Charge")) == 0 then
EffectSource():ReturnToOwnersHand()
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
<TOKEN_REGISTRATION reservation="2" type="RSN_TOKEN_MANA_W" />
<TOKEN_REGISTRATION reservation="3" type="RSN_TOKEN_MANA_R" />
<TOKEN_REGISTRATION reservation="4" type="RSN_TOKEN_MANA_G" />
<TOKEN_REGISTRATION reservation="5" type="RSN_TOKEN_MANA_U" />
<AI_BASE_SCORE score="200" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
[lua] [string "MANA_BLOOM_500253592_TITLE (RESOLUTION_TIME_ACTION)~0x000002e2"]:3: attempt to index a nil value
[lua] ?:0: attempt to index a nil value
I think I'm getting something wrong with the DataChest. Hope you guys can help

Edit:
I'm using the DC to store an integer which indicates whether the ability was used.
Re: Coding Mana Bloom
by RiiakShiNal » 06 Aug 2013, 19:49
The easiest way to code "activate only once per turn" would be to use the per_turn_limit attribute in the AVAILABILITY block:
- Code: Select all
<AVAILABILITY per_turn_limit="1" />
- Code: Select all
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
RSN_GetObjectDC(EffectSource()):Int_Set(0, 0)
if EffectSource():CountCounters(MTG():GetCountersType("Charge")) == 0 then
EffectSource():ReturnToOwnersHand()
end
end
</RESOLUTION_TIME_ACTION>
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Coding Mana Bloom
by Zarroc » 06 Aug 2013, 20:53
Thank you very much riiak!
Guess i should've read the xml tag list more carefully :/
Guess i should've read the xml tag list more carefully :/
3 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 5 guests