It is currently 27 Apr 2024, 13:08
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby NeoAnderson » 17 Dec 2013, 16:49

I made the card Xenograft, with my idea of "Name a creature type", with my implementation you type the creature_type, it is still a working progress idea, but the basic functions are working.
There are some limitations :
1. Are supported only the follow languages : English, French, Spanish, German, Italian.
2. When you type the creature type, each special character(expecially for French, Spanish and German) must be turned into basic type ( Example: ALLIÉ must be typed as ALLIE. Example : ÜBERTRÄGER must be typed as UBERTRAGER. Example : TEJÓN must be typed as TEJON). I could fix this issue but the screens with types would be increased too much. I think is a fair compromise.

Positive aspects :
1. You don't have to look the kinds into decks just type one valid kind.
2. Are simultaneously supported 5 languages, so you can type the card into your preferred language also if it is different from playing language. Sometimes the words are shorter into another language so can be easy to type Example : "Bat" : English "Pipistrello" : Italian, you can type "Bat" also if you are playing into Italian language.
3. Only valid kind are accepted otherwise the function restart.
4. On the Button "Ok" you can see what you have already typed (it changes, after each typing)


Xenograft | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="XENOGRAFT_227544" />
  <CARDNAME text="XENOGRAFT" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Xenograft]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Xénogreffe]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Xenoinjerto]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fremdtransplantat]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Xenotrapianto]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[異種移植]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Xenograft]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ксенотрансплантат]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Xenoenxerto]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="227544" />
  <ARTID value="227544" />
  <ARTIST name="Daniel Ljunggren" />
  <CASTING_COST cost="{4}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“I despise Vorinclex and his slobberings about ‘evolution.’ Only I know true progress.”
Jin-Gitaxias, Core Augur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Je méprise Vorinclex et ses élucubrations sur « l’évolution ». Je suis le seul à savoir ce qu’est le vrai progrès. »
—Jin-Gitaxias, augure du Noyau]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Desprecio a Vórinclex y sus balbuceos sobre ‘evolución’. Sólo yo conozco el verdadero progreso.”
—Jin-Gitaxias, presagio del núcleo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Ich verachte Vorinclex und sein Gesabbel über ,Entwicklung‘. Nur ich kenne den wahren Fortschritt.”
—Jin-Gitaxias, Kern-Augur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Disprezzo Vorinclex e le sue farneticazioni sull’‘evoluzione’. Solo io conosco il vero progresso.”
—Jin-Gitaxias, Augure del Nucleo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「ヴォリンクレックスの口から出る『進化』ほどくだらぬ言葉は無い。真の進歩を知るのは我だけだ。」
――核の占い師、ジン=ギタクシアス]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“I despise Vorinclex and his slobberings about ‘evolution.’ Only I know true progress.”
Jin-Gitaxias, Core Augur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Я презираю Воринклекса и его сюсюкание по поводу “эволюции”. Я один знаю, что такое истинный прогресс».
— Джин-Джитаксиас, Гадатель Ядра]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Eu desprezo Vorinclex e toda sua conversa sobre ‘evolução’. Só eu sei o que é o verdadeiro progresso.”
— Jin-Gitaxias, Áugure Principal]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <EXPANSION value="NPH" />
  <RARITY metaname="R" />

<TRIGGERED_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As Xenograft enters the battlefield, choose a creature type.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au moment où la Xénogreffe arrive sur le champ de bataille, choisissez un type de créature.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[En cuanto el Xenoinjerto entre al campo de batalla, elige un tipo de criatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sowie das Fremdtransplantat ins Spiel kommt, bestimme einen Kreaturentyp.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mentre lo Xenotrapianto entra nel campo di battaglia, scegli un tipo di creatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[異種移植が戦場に出るに際し、クリーチャー・タイプを1つ選ぶ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As Xenograft enters the battlefield, choose a creature type.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[При выходе Ксенотрансплантата на поле битвы выберите тип существа.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conforme Xenoenxerto entra no campo de batalha, escolha um tipo de criatura.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
  <RESOLUTION_TIME_ACTION repeating="1">
  local player = EffectController()
  local n = MTG():GetActionRepCount()
  local oString = ""
  local oEnding = "OK"
  local oType = ""
  local difference = 0
  if n == 0 then
     LinkedDC():Set_Int(10, 1)
     LinkedDC():Set_Int(20, 0)
  end
  local parity = n % 2
  local startIndex = LinkedDC():Get_Int(10)
  local val = 0
  for i=1, LinkedDC():Get_Int(20) do
     val = i + 20
     oType = NumbersToString(LinkedDC():Get_Int(val))
     oString = oString..oType
  end
    if parity == 0  then
      player:BeginNewMultipleChoice()
      player:AddMultipleChoiceAnswer( "UI_PROMOTIONAL_PREV" )
      player:AddMultipleChoiceAnswer(  NumbersToString( startIndex ) )
      player:AddMultipleChoiceAnswer(  NumbersToString( startIndex+1 ) )
      player:AddMultipleChoiceAnswer(  NumbersToString( startIndex+2 ) )
      player:AddMultipleChoiceAnswer(  NumbersToString( startIndex+3 ) )
      player:AddMultipleChoiceAnswer( "UI_PROMOTIONAL_NEXT" )
      player:AddMultipleChoiceAnswer( oString.."  -  "..oEnding )
      player:AskMultipleChoiceQuestion( "CARD_QUERY_MC_CHOOSE_CREATURE_TYPE" )
    elseif parity == 1  then
    local result = player:GetMultipleChoiceResult()
      if result == 0  then
             if startIndex == 1 then
                startIndex = 25
             else
                startIndex = startIndex - 4
             end
       LinkedDC():Set_Int(10, startIndex)
     return true
      elseif result == 5 then
             if startIndex == 25 then
                startIndex = 1
             else
                startIndex = startIndex + 4
             end
       LinkedDC():Set_Int(10, startIndex)
     return true
      elseif result &gt; 0 and result &lt; 5 then
       difference = result + (startIndex - 1)
       LinkedDC():Int_Inc(20)
       local pos = LinkedDC():Get_Int(20)
       pos = pos + 20 
       LinkedDC():Set_Int(pos, difference)
       return true
      elseif result == 6 then
      local oTypeToAdd = StringToCreatureIndex(oString)
            if oTypeToAdd ~= 0 then
               LinkedDC():Set_Int(0,1)
               return false
            else
            LinkedDC():Set_Int(10, 1)
            LinkedDC():Set_Int(20, 0)
       startIndex = 1
       oString = ""
            return true
            end
      end
   end
  return true
    </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each creature you control is the chosen type in addition to its other types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque créature que vous contrôlez a le type choisi en plus de ses autres types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada criatura que controlas es del tipo elegido además de sus otros tipos.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jede Kreatur, die du kontrollierst, hat zusätzlich zu ihren anderen Typen den bestimmten Kreaturentyp.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni creatura che controlli ha il tipo scelto in aggiunta ai suoi altri tipi.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールするクリーチャーは、それの他のタイプに加えてその選ばれたタイプでもある。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each creature you control is the chosen type in addition to its other types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждое существо под вашим контролем обладает выбранным типом в дополнение к своим другим типам.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada criatura que você controla é do tipo escolhido além de seus outros tipos.]]></LOCALISED_TEXT>
    <FILTER filter_id="0">
      local filter = ClearFilter()
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    </FILTER>

   
<CONTINUOUS_ACTION layer="4" filter_id="0">
 if LinkedDC():Get_Int(0) == 1 then
    local oSString = ""
    local oType = ""
    local val = 0
       for i=1, LinkedDC():Get_Int(20) do
           val = i + 20
           oType = NumbersToString(LinkedDC():Get_Int(val))
           oSString = oSString..oType
       end
      local oTypeToAdd = StringToCreatureIndex(oSString)
      if oTypeToAdd ~= 0 then
            if FilteredCard() ~= nil then
             local characteristics = FilteredCard():GetCurrentCharacteristics()
             local subtype = characteristics:SubType_GetWritable()
             subtype:Add( oTypeToAdd )
           end 
      end
end
</CONTINUOUS_ACTION>

    <DURATION>
    return EffectSource() == nil
    </DURATION>
  </STATIC_ABILITY>

</CARD_V2>
To make this card work are also needed the follow functions :

Needed functions | Open
Code: Select all
NumbersToString = function(oVal)
local oString = ""
if oVal == 1 then
   oString = "A"
elseif oVal == 2 then
   oString = "B"
elseif oVal == 3 then
   oString = "C"
elseif oVal == 4 then
   oString = "D"
elseif oVal == 5 then
   oString = "E"
elseif oVal == 6 then
   oString = "F"
elseif oVal == 7 then
   oString = "G"
elseif oVal == 8 then
   oString = "H"
elseif oVal == 9 then
   oString = "I"
elseif oVal == 10 then
   oString = "J"
elseif oVal == 11 then
   oString = "K"
elseif oVal == 12 then
   oString = "L"
elseif oVal == 13 then
   oString = "M"
elseif oVal == 14 then
   oString = "N"
elseif oVal == 15 then
   oString = "O"
elseif oVal == 16 then
   oString = "P"
elseif oVal == 17 then
   oString = "Q"
elseif oVal == 18 then
   oString = "R"
elseif oVal == 19 then
   oString = "S"
elseif oVal == 20 then
   oString = "T"
elseif oVal == 21 then
   oString = "U"
elseif oVal == 22 then
   oString = "V"
elseif oVal == 23 then
   oString = "W"
elseif oVal == 24 then
   oString = "X"
elseif oVal == 25 then
   oString = "Y"
elseif oVal == 26 then
   oString = "Z"
elseif oVal == 27 then
   oString = "_"
elseif oVal == 28 then
   oString = " "
end
return oString
end

StringToCreatureIndex = function(oVal)
local oString = 0
if oVal == "HUMAN" or oVal == "HUMAIN" or oVal == "HUMANO" or oVal == "MENSCH" or oVal == "UMANO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 0
elseif oVal == "ADVISOR" or oVal == "CONSEILLER" or oVal == "CONSEJERO" or oVal == "BERATER" or oVal == "CONSIGLIERE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 1
elseif oVal == "ANEMONE" or oVal == "ANEMONA" or oVal == "SEEANEMONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 2
elseif oVal == "ANGEL" or oVal == "ANGE" or oVal == "ANGEL" or oVal == "ENGEL" or oVal == "ANGELO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 3
elseif oVal == "ANTEATER" or oVal == "FOURMILIER" or oVal == "HORMIGUERO" or oVal == "AMEISENBAR" or oVal == "FORMICHIERE"   then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 4
elseif oVal == "ANTELOPE" or oVal == "ANTILOPE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 5
elseif oVal == "APE" or oVal == "GRAND SINGE" or oVal == "SIMIO" or oVal == "MENSCHENAFFE" or oVal == "SCIMPANZE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 6
elseif oVal == "ARCHER" or oVal == "ARQUERO" or oVal == "BOGENSCHUTZE" or oVal == "ARCIERE"   then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 7
elseif oVal == "ARCHON"  or oVal == "ARCHONTE" or oVal == "ARCONTE" or oVal == "ARCHON"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 8
elseif oVal == "ARTIFICER"  or oVal == "ARTIFICIER" or oVal == "ARTIFICE" or oVal == "HANDWERKER" or oVal == "ARTEFICE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 9
elseif oVal == "ASSASSIN"  or oVal == "ASESINO" or oVal == "ASSASSINE" or oVal == "ASSASSINO"   then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 10
elseif oVal == "ASSEMBLY WORKER"  or oVal == "OUVRIER SPECIALISE" or oVal == "OPERARIO" or oVal == "MONTAGEARBEITER" or oVal == "ADDETTO AL MONTAGGIO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 11
elseif oVal == "ATOG" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 12
elseif oVal == "AUROCHS"  or oVal == "URO" or oVal == "AUEROCHSE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 13
elseif oVal == "AVATAR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 14
elseif oVal == "BADGER" or oVal == "BLAIREAU" or oVal == "TEJON" or oVal == "DACHS" or oVal == "TASSO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 15
elseif oVal == "BARBARIAN" or oVal == "BARBARE" or oVal == "BARBARO" or oVal == "BARBAR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 16
elseif oVal == "BASILISK"  or oVal == "BASILIC" or oVal == "BASILISCO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 17
elseif oVal == "BAT"  or oVal == "CHAUVE SOURIS" or oVal == "MURCIELAGO" or oVal == "FLEDERMAUS" or oVal == "PIPISTRELLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 18
elseif oVal == "BEAR"  or oVal == "OURS" or oVal == "OSO" or oVal == "BAR" or oVal == "ORSO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 19
elseif oVal == "BEAST"  or oVal == "BÊTE" or oVal == "BESTIA" or oVal == "BESTIE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 20
elseif oVal == "BEEBLE"  or oVal == "BIBULE" or oVal == "BEEBLE" or oVal == "BOBBEL" or oVal == "BIBOLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 21
elseif oVal == "BERSERKER" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 22
elseif oVal == "BIRD" or oVal == "OISEAU" or oVal == "AVE" or oVal == "VOGEL" or oVal == "UCCELLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 23
elseif oVal == "BLINKMOTH"  or oVal == "SCINTIMITE" or oVal == "POLILLA TITILANTE" or oVal == "BLINKMOTTE" or oVal == "LAMPIDOTTERO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 24
elseif oVal == "BOAR"  or oVal == "SANGLIER" or oVal == "JABALI" or oVal == "WILDSCHWEIN" or oVal == "CINGHIALE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 25
elseif oVal == "BRINGER"  or oVal == "ANNONCIATEUR" or oVal == "ADALID" or oVal == "PORTATORE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 26
elseif oVal == "BRUSHWAGG"  or oVal == "BOSQUERISSON" or oVal == "YERBAMALA" or oVal == "BUSCHKOTER" or oVal == "BURLARBUSTO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 27
elseif oVal == "CAMARID"  or oVal == "CAMARIDE" or oVal == "CAMARIDO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 28
elseif oVal == "CAMEL"  or oVal == "CHAMEAU" or oVal == "CAMELLO" or oVal == "KAMEL" or oVal == "CAMMELLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 29
elseif oVal == "CARIBOU"  or oVal == "CARIBU" or oVal == "RENTIER" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 30
elseif oVal == "CARRIER"  or oVal == "PROPAGATEUR" or oVal == "PORTADOR" or oVal == "UBERTRAGER" or oVal == "VIAGGIATORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 31
elseif oVal == "CAT"  or oVal == "CHAT" or oVal == "FELINO" or oVal == "KATZE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 32
elseif oVal == "CENTAUR"  or oVal == "CENTAURE" or oVal == "CENTAURO" or oVal == "ZENTAUR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 33
elseif oVal == "CEPHALID"  or oVal == "CEPHALIDE" or oVal == "CEFALIDO" or oVal == "ZEPHALID" or oVal == "CEFALIDE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 34
elseif oVal == "CHIMERA"  or oVal == "CHIMERE" or oVal == "QUIMERA" or oVal == "CHIMARE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 35
elseif oVal == "CITIZEN"  or oVal == "CITOYEN" or oVal == "CIUDADANO" or oVal == "BURGER" or oVal == "CITTADINO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 36
elseif oVal == "CLERIC"  or oVal == "CLERC" or oVal == "CLERIGO" or oVal == "KLERIKER" or oVal == "CHIERICO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 37
elseif oVal == "COCKATRICE"  or oVal == "COCATRIX" or oVal == "COCATRIZ" or oVal == "WOLPERTINGER" or oVal == "COCCATRICE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 38
elseif oVal == "CONSTRUCT"  or oVal == "CONSTRUCTION" or oVal == "CONSTRUCTO" or oVal == "KONSTRUKT" or oVal == "COSTRUTTO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 39
elseif oVal == "COWARD"  or oVal == "COUARD" or oVal == "COBARDE" or oVal == "FEIGLING" or oVal == "VIGLIACCO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 40
elseif oVal == "CRAB"  or oVal == "CRABE" or oVal == "CANGREJO" or oVal == "KRABBE" or oVal == "GRANCHIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 41
elseif oVal == "CROCODILE"  or oVal == "COCODRILO" or oVal == "KROKODIL" or oVal == "COCCODRILLO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 42
elseif oVal == "CYCLOPS"  or oVal == "CYCLOPE" or oVal == "ZYKLOP" or oVal == "CICLOPE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 43
elseif oVal == "DAUTHI" or oVal == "DAUTI" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 44
elseif oVal == "DEMON" or oVal == "DEMONIO" or oVal == "DAMON" or oVal == "DEMONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 45
elseif oVal == "DESERTER"  or oVal == "DESERTEUR" or oVal == "DESERTOR" or oVal == "DISERTORE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 46
elseif oVal == "DEVIL" or oVal == "DIABLE" or oVal == "DIABLO" or oVal == "TEUFEL" or oVal == "DIAVOLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 47
elseif oVal == "DJINN" or oVal == "DSCHINN" or oVal == "GENIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 48
elseif oVal == "DRAGON" or oVal == "DRACHE" or oVal == "DRAGO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 49
elseif oVal == "DRAKE" or oVal == "DRAKON" or oVal == "DRACO" or oVal == "SCEADA" or oVal == "DRAGHETTO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 50
elseif oVal == "DREADNOUGHT" or oVal == "CUIRASSE" or oVal == "ACORAZADO" or oVal == "SCHLACHTSCHIFF" or oVal == "STERMINATORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 51
elseif oVal == "DRONE" or oVal == "ZANGANO" or oVal == "DROHNE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 52
elseif oVal == "DRUID" or oVal == "DRUIDE" or oVal == "DRUIDA" or oVal == "DRUIDO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 53
elseif oVal == "DRYAD" or oVal == "DRYADE" or oVal == "DRIADA" or oVal == "DRYADE" or oVal == "DRIADE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 54
elseif oVal == "DWARF" or oVal == "NAIN" or oVal == "ENANO" or oVal == "ZWERG" or oVal == "NANO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 55
elseif oVal == "EFREET" or oVal == "EFRIT" or oVal == "IFRIT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 56
elseif oVal == "EGG" or oVal == "EUF" or oVal == "HUEVO" or oVal == "EI" or oVal == "UOVO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 57
elseif oVal == "ELDER" or oVal == "ANCETRE" or oVal == "ANCIANO" or oVal == "ALTESTER" or oVal == "ANTICO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 58
elseif oVal == "ELEMENTAL" or oVal == "ELEMENTARWESEN" or oVal == "ELEMENTALE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 59
elseif oVal == "ELEPHANT" or oVal == "ELEFANTE" or oVal == "ELEFANT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 60
elseif oVal == "ELF" or oVal == "ELFE" or oVal == "ELFO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 61
elseif oVal == "ELK" or oVal == "ELAN" or oVal == "ALCE" or oVal == "HIRSCH" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 62
elseif oVal == "EYE" or oVal == "EIL" or oVal == "OJO" or oVal == "BETRACHTER" or oVal == "OCCHIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 63
elseif oVal == "FAERIE" or oVal == "PEUPLE FEE" or oVal == "HADA" or oVal == "FEENWESEN" or oVal == "SPIRITELLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 64
elseif oVal == "FERRET" or oVal == "FURET" or oVal == "HURON" or oVal == "FRETTCHEN" or oVal == "FURETTO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 65
elseif oVal == "FISH" or oVal == "POISSON" or oVal == "PEZ" or oVal == "FISCH" or oVal == "PESCE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 66
elseif oVal == "FLAGBEARER" or oVal == "ENSEIGNE" or oVal == "ABANDERADO" or oVal == "FAHNENTRAGER" or oVal == "PORTABANDIERA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 67
elseif oVal == "FOX" or oVal == "RENARD" or oVal == "ZORRO" or oVal == "FUCHS" or oVal == "VOLPE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 68
elseif oVal == "FROG" or oVal == "GRENOUILLE" or oVal == "RANA" or oVal == "FROSCH" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 69
elseif oVal == "FUNGUS" or oVal == "FONGUS" or oVal == "HONGO" or oVal == "PILZWESEN" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 70
elseif oVal == "GARGOYLE" or oVal == "GARGOUILLE" or oVal == "GARGOLA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 71
elseif oVal == "GIANT" or oVal == "" or oVal == "" or oVal == "" or oVal == ""  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 72
elseif oVal == "GNOME" or oVal == "GEANT" or oVal == "GIGANTE" or oVal == "RIESE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 73
elseif oVal == "GOAT" or oVal == "CHEVRE" or oVal == "CABRA" or oVal == "ZIEGE" or oVal == "CAPRA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 74
elseif oVal == "GOBLIN" or oVal == "GOBELIN" or oVal == "TRASGO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 75
elseif oVal == "GOLEM" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 76
elseif oVal == "GORGON" or oVal == "GORGONOIDE" or oVal == "GORGONA" or oVal == "GORGO" or oVal == "GORGONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 77
elseif oVal == "GRAVEBORN" or oVal == "NE DES TOMBES" or oVal == "CADAVER" or oVal == "LEICHE" or oVal == "FIGLIO DELLA TOMBA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 78
elseif oVal == "GREMLIN" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 79
elseif oVal == "GRIFFIN" or oVal == "GRIFFON" or oVal == "GRIFO" or oVal == "GREIF" or oVal == "GRIFONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 80
elseif oVal == "HAG" or oVal == "MEGERE" or oVal == "SAGA" or oVal == "VETTEL" or oVal == "STREGA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 81
elseif oVal == "HARPY" or oVal == "HARPIE" or oVal == "ARPIA" or oVal == "HARPYIE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 82
elseif oVal == "HELLION" or oVal == "MONSTRUOSITE" or oVal == "INFERNAL" or oVal == "TEUFELSBRATEN" or oVal == "INFERNALE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 83
elseif oVal == "HIPPO" or oVal == "HIPPOPOTAME" or oVal == "HIPOPOTAMO" or oVal == "FLUSSPFERD" or oVal == "IPPOPOTAMO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 84
elseif oVal == "HOMARID" or oVal == "HOMARIDE" or oVal == "HOMARIDO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 85
elseif oVal == "HOMUNCULUS" or oVal == "HOMONCULE" or oVal == "HOMUNCULO" or oVal == "HOMUNKULUS" or oVal == "OMUNCOLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 86
elseif oVal == "HORROR" or oVal == "HORREUR" or oVal == "SCHRECKEN" or oVal == "ORRORE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 87
elseif oVal == "HORSE" or oVal == "CHEVAL" or oVal == "CABALLO" or oVal == "PFERD" or oVal == "CAVALLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 88
elseif oVal == "HOUND" or oVal == "CHIEN DE CHASSE" or oVal == "PERRO" or oVal == "HUND" or oVal == "SEGUGIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 89
elseif oVal == "HYDRA" or oVal == "HYDRE" or oVal == "HIDRA" or oVal == "IDRA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 90
elseif oVal == "ILLUSION" or oVal == "ILUSION" or oVal == "ILLUSIONE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 91
elseif oVal == "IMP" or oVal == "DIABLOTIN" or oVal == "DIABLILLO" or oVal == "BOLD" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 92
elseif oVal == "INCARNATION" or oVal == "ENCARNACION" or oVal == "INKARNATION" or oVal == "INCARNAZIONE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 93
elseif oVal == "INSECT" or oVal == "INSECTE" or oVal == "INSECTO" or oVal == "INSEKT" or oVal == "INSETTO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 94
elseif oVal == "JELLYFISH" or oVal == "MEDUSE" or oVal == "MEDUSA" or oVal == "QUALLE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 95
elseif oVal == "JUGGERNAUT" or oVal == "DJAGGERNAUT" or oVal == "DESTRUCTOR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 96
elseif oVal == "KAVU" or oVal == "KAVRU" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 97
elseif oVal == "KIRIN" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 98
elseif oVal == "KITHKIN" or oVal == "SANGAMI" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 99
elseif oVal == "KNIGHT" or oVal == "CHEVALIER" or oVal == "CABALLERO" or oVal == "RITTER" or oVal == "CAVALIERE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 100
elseif oVal == "KOBOLD" or oVal == "COBOLDO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 101
elseif oVal == "KOR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 102
elseif oVal == "KRAKEN" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 103
elseif oVal == "LAMMASU" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 104
elseif oVal == "LEECH" or oVal == "SANGSUE" or oVal == "SANGUIJUELA" or oVal == "EGEL" or oVal == "SANGUISUGA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 105
elseif oVal == "LEVIATHAN" or oVal == "LEVIATÁN" or oVal == "LEVIATANO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 106
elseif oVal == "LHURGOYF" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 107
elseif oVal == "LICID" or oVal == "LITIQUE" or oVal == "LICIDO" or oVal == "ZECKE" or oVal == "LICIDE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 108
elseif oVal == "LIZARD" or oVal == "LEZARD" or oVal == "LAGARTO" or oVal == "EIDECHSE" or oVal == "LUCERTOLA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 109
elseif oVal == "MANTICORE" or oVal == "MANTICORA" or oVal == "MANTIKOR" or oVal == "MANTICORA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 110
elseif oVal == "MASTICORE" or oVal == "MASTIKOR" or oVal == "MASTICORA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 111
elseif oVal == "MERCENARY" or oVal == "MERCENAIRE" or oVal == "MERCENARIO" or oVal == "SÖLDNER" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 112
elseif oVal == "MERFOLK" or oVal == "ONDIN" or oVal == "TRITON" or oVal == "MEERVOLK" or oVal == "TRITONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 113
elseif oVal == "METATHRAN" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 114
elseif oVal == "MINION" or oVal == "MIGNON" or oVal == "SICARIO" or oVal == "DIENER" or oVal == "SERVITORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 115
elseif oVal == "MINOTAUR" or oVal == "MINOTAURE" or oVal == "MINOTAURO" or oVal == "MINOTAURUS"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 116
elseif oVal == "MONGER" or oVal == "NEGOCIANT" or oVal == "TRAFICANTE" or oVal == "FREIHANDLER" or oVal == "COMMERCIANTE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 117
elseif oVal == "MONGOOSE" or oVal == "MANGOUSTE" or oVal == "MANGOSTA" or oVal == "MUNGO" or oVal == "MANGUSTA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 118
elseif oVal == "MONK" or oVal == "MOINE" or oVal == "MONJE" or oVal == "MONCH" or oVal == "MONACO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 119
elseif oVal == "MOONFOLK" or oVal == "LUNAREEN" or oVal == "PUEBLO LUNAR" or oVal == "MONDVOLK" or oVal == "LUNANTROPO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 120
elseif oVal == "MUTANT" or oVal == "MUTANTE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 121
elseif oVal == "MYR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 122
elseif oVal == "MYSTIC" or oVal == "MYSTIQUE" or oVal == "MYSTIKER" or oVal == "MISTICO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 123
elseif oVal == "NAUTILUS" or oVal == "NAUTILE" or oVal == "NAUTILO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 124
elseif oVal == "NEPHILIM" or oVal == "NEFILIM" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 125
elseif oVal == "NIGHTMARE" or oVal == "CAUCHEMAR" or oVal == "PESADILLA" or oVal == "NACHTMAHR" or oVal == "INCUBO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 126
elseif oVal == "NIGHTSTALKER" or oVal == "CHASSENUIT" or oVal == "CAZADOR NOCTURNO" or oVal == "NACHTSCHRAT" or oVal == "CACCIATORE NOTTURNO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 127
elseif oVal == "NINJA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 128
elseif oVal == "NOMAD" or oVal == "NOMADE" or oVal == "NOMADA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 129
elseif oVal == "OCTOPUS" or oVal == "PIEUVRE" or oVal == "PULPO" or oVal == "OKTOPUS" or oVal == "PIOVRA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 130
elseif oVal == "OGRE" or oVal == "OGRO" or oVal == "OGER" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 131
elseif oVal == "OOZE" or oVal == "LIMON" or oVal == "CIENO" or oVal == "SCHLAMMWESEN" or oVal == "MELMA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 132
elseif oVal == "ORB" or oVal == "ORBE" or oVal == "SPHARE" or oVal == "GLOBO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 133
elseif oVal == "ORC" or oVal == "ORQUE" or oVal == "ORCO" or oVal == "ORK" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 134
elseif oVal == "ORGG" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 135
elseif oVal == "OUPHE" or oVal == "ORPHE" or oVal == "OUFE" or oVal == "BUBOH" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 136
elseif oVal == "OX" or oVal == "BOVIDE" or oVal == "BUEY" or oVal == "OCHSE" or oVal == "BUE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 137
elseif oVal == "OYSTER" or oVal == "HUITRE" or oVal == "OSTRA" or oVal == "AUSTER" or oVal == "OSTRICA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 138
elseif oVal == "PEGASUS" or oVal == "PEGASE" or oVal == "PEGASO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 139
elseif oVal == "PENTAVITE" or oVal == "PENTAVITA" or oVal == "PENTAVIT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 140
elseif oVal == "PEST" or oVal == "PARASITE" or oVal == "PLAGA" or oVal == "SCHADLING" or oVal == "PESTE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 141
elseif oVal == "PHELDDAGRIF" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 142
elseif oVal == "PHOENIX" or oVal == "PHENIX" or oVal == "FENIX" or oVal == "FENICE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 143
elseif oVal == "PINCHER" or oVal == "PINCEUR" or oVal == "TENAZA" or oVal == "KNEIFER" or oVal == "PUNGITORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 144
elseif oVal == "PIRATE" or oVal == "PIRATA" or oVal == "PIRAT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 145
elseif oVal == "PLANT" or oVal == "PLANTE" or oVal == "PLANTA" or oVal == "PFLANZE" or oVal == "PIANTA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 146
elseif oVal == "PRISM" or oVal == "PRISME" or oVal == "PRISMA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 147
elseif oVal == "RABBIT" or oVal == "LAPIN" or oVal == "CONEJO" or oVal == "KANINCHEN" or oVal == "CONIGLIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 148
elseif oVal == "RAT" or oVal == "RATA" or oVal == "RATTE" or oVal == "RATTO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 149
elseif oVal == "REBEL" or oVal == "REBELLE" or oVal == "REBELDE" or oVal == "REBELL" or oVal == "RIBELLE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 150
elseif oVal == "REFLECTION" or oVal == "REFLET" or oVal == "REFLEJO" or oVal == "REFLEKTION" or oVal == "RIFLESSO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 151
elseif oVal == "RHINO" or oVal == "RHINOCEROS" or oVal == "RINOCERONTE" or oVal == "NASHORN"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 152
elseif oVal == "RIGGER" or oVal == "GREEUR" or oVal == "APAREJADOR" or oVal == "MECHANIKER" or oVal == "ASSEMBLATORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 153
elseif oVal == "ROGUE" or oVal == "GREDIN" or oVal == "BRIBON" or oVal == "RAUBER" or oVal == "FARABUTTO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 154
elseif oVal == "SALAMANDER" or oVal == "SALAMANDRE" or oVal == "SALAMANDRA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 155
elseif oVal == "SAMURAI" or oVal == "SAMOURAÏ"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 156
elseif oVal == "SAND" or oVal == "SABLE" or oVal == "ARENA" or oVal == "SABBIA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 157
elseif oVal == "SAPROLING" or oVal == "SAPROBIONTE" or oVal == "SAPROLIN" or oVal == "SAPROLINGIO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 158
elseif oVal == "SATYR" or oVal == "SATYRE" or oVal == "SATIRO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 159
elseif oVal == "SCARECROW" or oVal == "EPOUVANTAIL" or oVal == "ESPANTAPAJAROS" or oVal == "VOGELSCHEUCHE" or oVal == "SPAVENTAPASSERI"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 160
elseif oVal == "SCORPION" or oVal == "ESCORPION" or oVal == "SKORPION" or oVal == "SCORPIONE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 161
elseif oVal == "SCOUT" or oVal == "ECLAIREUR" or oVal == "EXPLORADOR" or oVal == "SPAHER" or oVal == "ESPLORATORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 162
elseif oVal == "SERF" or oVal == "SIERVO" or oVal == "LEIBEIGENER" or oVal == "SERVO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 163
elseif oVal == "SERPENT" or oVal == "SERPIENTE" or oVal == "SCHLANGE" or oVal == "SERPE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 164
elseif oVal == "SHADE" or oVal == "OMBRE" or oVal == "SOMBRA" or oVal == "SCHATTEN" or oVal == "OMBRA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 165
elseif oVal == "SHAMAN" or oVal == "SHAMANE" or oVal == "CHAMAN" or oVal == "SCHAMANE" or oVal == "SCIAMANO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 166
elseif oVal == "SHAPESHIFTER" or oVal == "CHANGEFORME" or oVal == "METAMORFO" or oVal == "GESTALTWANDLER" or oVal == "POLIMORFO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 167
elseif oVal == "SHEEP" or oVal == "MOUTON" or oVal == "OVEJA" or oVal == "SCHAF" or oVal == "PECORA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 168
elseif oVal == "SKELETON" or oVal == "SQUELETTE" or oVal == "ESQUELETO" or oVal == "SKELETT" or oVal == "SCHELETRO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 169
elseif oVal == "SLITH" or oVal == "SLIT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 170
elseif oVal == "SLIVER" or oVal == "SLIVOIDE" or oVal == "FRAGMENTADO" or oVal == "REMASURI" or oVal == "TRAMUTANTE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 171
elseif oVal == "SLUG" or oVal == "LIMACE" or oVal == "BABOSA" or oVal == "SCHNECKE" or oVal == "LUMACA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 172
elseif oVal == "SNAKE" or oVal == "SERPENT" or oVal == "VIBORA" or oVal == "OPHIS" or oVal == "SERPENTE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 173
elseif oVal == "SOLDIER" or oVal == "SOLDAT" or oVal == "SOLDADO" or oVal == "SOLDATO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 174
elseif oVal == "SOLTARI"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 175
elseif oVal == "SPAWN" or oVal == "ENGEANCE" or oVal == "ENGENDRO" or oVal == "LAICH" or oVal == "PROGENIE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 176
elseif oVal == "SPECTER" or oVal == "SPECTRE" or oVal == "ESPECTRO" or oVal == "SPETTRO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 177
elseif oVal == "SPELLSHAPER" or oVal == "SORTISAN" or oVal == "CAMBIAHECHIZOS" or oVal == "SPRUCHWANDLER" or oVal == "MUTAMAGIA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 178
elseif oVal == "SPHINX" or oVal == "ESFINGE" or oVal == "SFINGE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 179
elseif oVal == "SPIDER" or oVal == "ARAIGNEE" or oVal == "ARANA" or oVal == "SPINNE" or oVal == "RAGNO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 180
elseif oVal == "SPIKE" or oVal == "EPIX" or oVal == "PERFORADOR" or oVal == "STACHEL" or oVal == "PUNGIGLIONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 181
elseif oVal == "SPIRIT" or oVal == "ESPRIT" or oVal == "ESPIRITU" or oVal == "GEIST" or oVal == "SPIRITO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 182
elseif oVal == "SPLINTER" or oVal == "FRAGMENT" or oVal == "ASTILLADO" or oVal == "SPLITTER" or oVal == "SCHEGGIA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 183
elseif oVal == "SPONGE" or oVal == "EPONGE" or oVal == "ESPONJA" or oVal == "SCHWAMM" or oVal == "SPUGNA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 184
elseif oVal == "SQUID" or oVal == "CALAMAR" or oVal == "KALMAR" or oVal == "CALAMARO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 185
elseif oVal == "SQUIRREL" or oVal == "ECUREUIL" or oVal == "ARDILLA" or oVal == "EICHHORNCHEN" or oVal == "SCOIATTOLO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 186
elseif oVal == "STARFISH" or oVal == "ETOILE DE MER" or oVal == "ESTRELLA DE MAR" or oVal == "SEESTERN" or oVal == "STELLA MARINA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 187
elseif oVal == "SURVIVOR" or oVal == "SURVIVANT" or oVal == "SOBREVIVIENTE" or oVal == "UBERLEBENDER" or oVal == "SOPRAVVISSUTO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 188
elseif oVal == "TETRAVITE" or oVal == "TETRAVITA" or oVal == "TETRAVIT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 189
elseif oVal == "THALAKOS" or oVal == "TALAKO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 190
elseif oVal == "THOPTER" or oVal == "MECANOPTERE" or oVal == "TOPTERO" or oVal == "TOTTERO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 191
elseif oVal == "THRULL" or oVal == "SRANE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 192
elseif oVal == "TREEFOLK" or oVal == "SYLVIN" or oVal == "PUEBLO ARBOREO" or oVal == "BAUMHIRTE" or oVal == "SILVANTROPO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 193
elseif oVal == "TRISKELAVITE" or oVal == "TRISQUELAVITA" or oVal == "TRISKELAVIT" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 194
elseif oVal == "TROLL" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 195
elseif oVal == "TURTLE" or oVal == "TORTUE" or oVal == "TORTUGA" or oVal == "SCHILDKROTE" or oVal == "TARTARUGA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 196
elseif oVal == "UNICORN" or oVal == "LICORNE" or oVal == "UNICORNIO" or oVal == "EINHORN" or oVal == "UNICORNO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 197
elseif oVal == "VAMPIRE" or oVal == "VAMPIRO" or oVal == "VAMPIR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 198
elseif oVal == "VEDALKEN" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 199
elseif oVal == "VIASHINO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 200
elseif oVal == "VOLVER" or oVal == "EVOLIEN" or oVal == "MODULON" or oVal == "VOLVERO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 201
elseif oVal == "WALL" or oVal == "MUR" or oVal == "MURO" or oVal == "MAUER" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 202
elseif oVal == "WARRIOR" or oVal == "GUERRIER" or oVal == "GUERRERO" or oVal == "KRIEGER" or oVal == "GUERRIERO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 203
elseif oVal == "WEIRD" or oVal == "ANOMALIE" or oVal == "EXTRANO" or oVal == "SELTSAMKEIT" or oVal == "BIZZARRIA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 204
elseif oVal == "WHALE" or oVal == "BALEINE" or oVal == "BALLENA" or oVal == "WAL" or oVal == "BALENA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 205
elseif oVal == "WIZARD" or oVal == "SORCIER" or oVal == "HECHICERO" or oVal == "ZAUBERER" or oVal == "MAGO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 206
elseif oVal == "WOLF" or oVal == "LOUP" or oVal == "LOBO" or oVal == "LUPO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 207
elseif oVal == "WOLVERINE" or oVal == "GLOUTON" or oVal == "GLOTON" or oVal == "VIELFRAB" or oVal == "GHIOTTONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 208
elseif oVal == "WOMBAT" or oVal == "VOMBATO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 209
elseif oVal == "WORM" or oVal == "VER" or oVal == "GUSANO" or oVal == "WURMCHEN" or oVal == "VERME"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 210
elseif oVal == "WRAITH" or oVal == "APPARITION" or oVal == "APARICION" or oVal == "NECROSPETTRO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 211
elseif oVal == "WURM" or oVal == "GUIVRE" or oVal == "SIERPE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 212
elseif oVal == "YETI" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 213
elseif oVal == "ZOMBIE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 214
elseif oVal == "ZUBERA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 215
elseif oVal == "ALLY" or oVal == "ALLIE" or oVal == "ALIADO" or oVal == "VERBUNDETER" or oVal == "ALLEATO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 216
elseif oVal == "TRAP" or oVal == "PIEGE" or oVal == "TRAMPA" or oVal == "FALLE" or oVal == "TRAPPOLA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 217
elseif oVal == "ELDRAZI"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 218
elseif oVal == "PRAETOR" or oVal == "MAGISTRADO" or oVal == "PRATOREN" or oVal == "PRETORE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 219
elseif oVal == "WEREWOLF" or oVal == "LOUP GAROU" or oVal == "LICANTROPO" or oVal == "MANNARO" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 220
elseif oVal == "SURRAKAR" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 221
elseif oVal == "GERM" or oVal == "GERME" or oVal == "GERMEN" or oVal == "KEIM" or oVal == "MICROBO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 222
elseif oVal == "HIPPOGRIFF" or oVal == "HIPPOGRIFFE" or oVal == "HIPOGRIFO" or oVal == "HIPPOGRYPH" or oVal == "IPPOGRIFO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 223
elseif oVal == "SIREN" or oVal == "SIRENE" or oVal == "SIRENA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 224
elseif oVal == "TOWNSFOLK" or oVal == "CITADIN" or oVal == "ALDEANO" or oVal == "STADTBEWOHNER" or oVal == "CITTADINI"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 225
elseif oVal == "HYENA" or oVal == "HYENE" or oVal == "HIENA" or oVal == "HYANE" or oVal == "IENA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 226
elseif oVal == "NOGGLE" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 227
elseif oVal == "GOD" or oVal == "DIEU" or oVal == "DEIDAD" or oVal == "GOTT" or oVal == "DIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 228
elseif oVal == "NYMPH" or oVal == "NYMPHE" or oVal == "NINFA" then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 229
elseif oVal == "SABLE" or oVal == "ZIBELINE" or oVal == "MARTA" or oVal == "ZOBEL" or oVal == "ZIBELLINO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 230
elseif oVal == "DIVINITY" or oVal == "DIVINITE" or oVal == "DIVINIDAD" or oVal == "GOTTLICHKEIT" or oVal == "DIVINITA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 231
elseif oVal == "DEMIGOD" or oVal == "DEMIDIEU" or oVal == "SEMIDIOS" or oVal == "HALBGOTT" or oVal == "SEMIDIO"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 232
elseif oVal == "MINOR DIVINITY" or oVal == "DIVINITE MINEURE" or oVal == "MENOR DEIDAD" or oVal == "KLEINERE GOTTHEIT" or oVal == "DIVINITA MINORE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 233
elseif oVal == "EAGLE" or oVal == "AIGLE" or oVal == "AGUILA" or oVal == "ADLER" or oVal == "AQUILA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 234
elseif oVal == "AMAZON" or oVal == "AMAZONAS" or oVal == "AMAZZONE"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 235
elseif oVal == "QUEEN" or oVal == "REINE" or oVal == "REINA" or oVal == "KONIGIN" or oVal == "REGINA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 236
elseif oVal == "STATUE" or oVal == "ESTATUA" or oVal == "STATUA"  then
   oString = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 237
end
 if oString > 999 and oString < 1238 then
   return oString
 else
   return 0
 end
end
Here there is the Card XML + TDX + LoL function file.
XENOGRAFT_227544.zip
Card XML + TDX + LoL function file
(500 KiB) Downloaded 230 times

Hey guys would be appreciated to know your opinion :-)

Image
Image
Image
Image
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby Misplay » 18 Dec 2013, 00:19

NeoAnderson wrote:Final card Skeletal Scrying collaboration with Sumomole :-)
So, I thank both you!! :D
Misplay
 
Posts: 92
Joined: 29 Aug 2013, 08:26
Has thanked: 50 times
Been thanked: 10 times

Re: Formal Request Thread

Postby Deadpoolmtg » 18 Dec 2013, 01:15

Missed some important cards for some decks, it is possible to code them?(If yes, could someone do it?) Strange someone not having coded them yet...

Spellweaver Helix
Forbidden Orchard
Tinder Wall
Propaganda
Ghostly Prison(found one whith cmc 1...)
Desperate Ritual

No need to hurry :)
User avatar
Deadpoolmtg
 
Posts: 12
Joined: 02 Jul 2013, 17:25
Has thanked: 28 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Orangewaggs » 19 Dec 2013, 00:04

Hey guys amazing work you do here I have a few requests if I may
Norin the Wary
Burning Inquiry
Gift of Orzhova
If it's possible Genesis Chamber
Megrim
Putrid Leech
Any of the Merfolk not already made

Thank you
User avatar
Orangewaggs
 
Posts: 17
Joined: 18 Dec 2013, 23:39
Has thanked: 8 times
Been thanked: 0 time

Re: Formal Request Thread

Postby NeoAnderson » 19 Dec 2013, 02:57

Deadpoolmtg wrote:Missed some important cards for some decks, it is possible to code them?(If yes, could someone do it?) Strange someone not having coded them yet...

Spellweaver Helix
Forbidden Orchard
Tinder Wall
Propaganda
Ghostly Prison(found one whith cmc 1...)
Desperate Ritual

No need to hurry :)
I started to code Spellweaver Helix , this card did drive me crazy.
I have made it but i still have some doubts about how it is supposed to work, i would receive the opinion of other modders like Riiak, TheFiremind, Mc Brodie, Sumomole...
The point to focus are :
1. When i decide to make a copy of the sorcery, the copy must be played during the copy or is stored and can be played later?
2. If the copy is stored the copies are cumulative? I mean until i play it i can make other copies then play them when i decide to do it ?

I also encountered some problem while i made the code :
I was supposing the copy and playing at the same time, and the game crashed many times, finally i found the problem this card exile sorceries, and when we are playing the opponent turn these card cannot be normally played.
This issue make me crazy because i was thinking there were problems with the trigger SPELL_PLAYED, the game was crashing without any log so i had to make a lot of different trials.

Anyway I made it work supposing the follow :
1. You can decide if Exile or not the sorceries when it come into battlefield.
2. You can decide to copy or not the sorcery B when a spell with the same name of the sorcery A is played.
2B. You can decide to copy or not the sorcery A when a spell with the same name of the sorcery B is played.
3. The copy is stored and you can play it into any of your turns, using the the corresponding activable ability on the main card.
4. The copies are cumulative, so until you don't play it you can copy again the same spell, and it will add a new copy to play.
5. If you play the copy it doesn't activate the trigger. Otherwise the card can endlessly loop.

Spellweaver Helix | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="SPELLWEAVER_HELIX_48047" />
  <CARDNAME text="SPELLWEAVER_HELIX" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Spellweaver Helix]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Hélice tisse-sort]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Hélice tejehechizos]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spruchweber-Spirale]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Spirale Tessimagie]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪文織りのらせん]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Spellweaver Helix]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Spellweaver Helix]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Hélice Tece-Mágicas]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="48047" />
  <ARTID value="48047" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{3}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="MRD" />
  <RARITY metaname="R" />

<TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Imprint — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Empreinte Quand l’Hélice tisse-sort arrive en jeu, vous pouvez retirer de la partie deux cartes de rituel ciblées dans un même cimetière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Estampa Cuando la Hélice tejehechizos entre en juego, puedes remover del juego dos cartas de conjuro objetivo de un único cementerio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Einprägen Wenn die Spruchweber-Spirale ins Spiel kommt, kannst du zwei Hexereikarten deiner Wahl aus einem einzigen Friedhof ganz aus dem Spiel entfernen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Imprimere — Quando la Spirale Tessimagie entra nel campo di battaglia, puoi esiliare due carte stregoneria bersaglio da un singolo cimitero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[刻印 ― 呪文織りの螺旋が場に出たとき、あなたはいずれか1つの墓地にあるソーサリー・カード2枚を対象とする。あなたはそれらをゲームから取り除いてもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Imprint — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Imprint — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Estampar Quando Hélice Tece-Mágicas entra em jogo, você pode remover de jogo dois cards alvo de feitiço de um único cemitério.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />

    <RESOLUTION_TIME_ACTION>
    local num_Players = MTG():GetNumberOfPlayers()
    for i = 0, (num_Players-1) do
    local oTPlayer = MTG():GetNthPlayer(i)
     if oTPlayer ~= nil then
       local filter = ClearFilter()
       filter:SetZone( ZONE_GRAVEYARD, oTPlayer)
       filter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
       local num_of_sorceries = filter:Count()
       if num_of_sorceries &gt; 1 then
          EffectDC():Set_Int(10+i, 2)
       end
     end
    end
    </RESOLUTION_TIME_ACTION>

    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:SetFilterType( FILTER_TYPE_PLAYERS )
    local subfilter = filter:AddSubFilter_Or()
    local num_Players = MTG():GetNumberOfPlayers()
    local j = 0
    for i = 0, (num_Players-1) do
       if EffectDC():Get_Int(10+i) &gt; 1 then
          subfilter:Add( FE_PLAYER_INSTANCE, OP_IS, MTG():GetNthPlayer(i) )
          j = j + 1
       end
    end
    if j &gt; 0 then
       local player = EffectController()
       player:BeginNewMultipleChoice()
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_EXILE_TWO_SORCERIES" )
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_NOT_EXILE_TWO_SORCERIES" )
      player:AskMultipleChoiceQuestion( "CARD_QUERY_EXILE_TWO_SORCERIES", Object() )
    end
    </RESOLUTION_TIME_ACTION>

  <RESOLUTION_TIME_ACTION>
  local result = EffectController():GetMultipleChoiceResult()
  if result == 0 then
    local filter = ClearFilter()
    filter:SetFilterType( FILTER_TYPE_PLAYERS )
    local subfilter = filter:AddSubFilter_Or()
    local num_Players = MTG():GetNumberOfPlayers()
    local j = 0
    for i = 0, (num_Players-1) do
       if EffectDC():Get_Int(10+i) &gt; 1 then
          subfilter:Add( FE_PLAYER_INSTANCE, OP_IS, MTG():GetNthPlayer(i) )
          j = j + 1
       end
    end
    if j &gt; 0 then
       EffectController():SetItemCount( 1 )
     for i = 0,(1-1) do
           EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_PLAYER" )
     end
       EffectController():ChooseItems( EffectDC():Make_Targets(1) )
    end
  end
  </RESOLUTION_TIME_ACTION>

   <RESOLUTION_TIME_ACTION>
    local oTPlayer = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_PlayerPtr(0)
    if oTPlayer ~= nil then
       local filter = ClearFilter()
       filter:SetZone( ZONE_GRAVEYARD, oTPlayer)
       filter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
       EffectController():SetItemCount( 2 )
       for i = 0,(2-1) do
           EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
       end
        EffectController():ChooseItems( EffectDC():Make_Targets(2) )
    end
    </RESOLUTION_TIME_ACTION>


    <RESOLUTION_TIME_ACTION>
    local firstcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(0)
    local secondcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(1)
    if firstcard ~= nil then
        EffectDC():Get_Targets(2):Protect_CardPtr(0)
        firstcard:Exile()
    end
    if secondcard ~= nil then
        EffectDC():Get_Targets(2):Protect_CardPtr(1)
        secondcard:Exile()
    end
    </RESOLUTION_TIME_ACTION>

    <RESOLUTION_TIME_ACTION>
    local firstcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(0)
    local secondcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(1)
    local source = EffectSource()
    local oDC = RSN_ObjectDC()
    if firstcard ~= nil then
        oDC:Set_CardPtr( 0, firstcard )
       oDC:Protect_CardPtr(0)
        firstcard:NailOnto(source)
    end
    if secondcard ~= nil then
       oDC:Set_CardPtr(1, secondcard)
       oDC:Protect_CardPtr(1)
        secondcard:NailOnto(source)
    end
     oDC:Int_Set(10, 1)
     oDC:Int_Set(11, 0)
     oDC:Int_Set(12, 0)
    </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>



<TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’une carte est jouée, si elle a le même nom qu’une des cartes dont l’Hélice tisse-sort a l’empreinte, vous pouvez copier l’autre et en jouer la copie sans payer son coût de mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que se juegue una carta, si tiene el mismo nombre que una de las cartas de conjuro estampadas, puedes copiar la otra y jugar la copia sin pagar su coste de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn eine Karte gespielt wird, die denselben Namen wie eine der eingeprägten Hexereikarten hat, kannst du die andere Karte kopieren und die Kopie spielen, ohne ihre Manakosten zu bezahlen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta viene lanciata una carta, se ha lo stesso nome di una delle due carte esiliate con la Spirale Tessimagie, puoi copiare l’altra. Se lo fai, puoi lanciare la copia senza pagare il suo costo di mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかのカードがプレイされるたび、それが刻印されているいずれかのソーサリー・カードと同じ名前を持つ場合、あなたはもう一方をコピーし、マナ・コストを支払わずにプレイしてもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que um card for jogado, se ele tiver o mesmo nome que um dos cards de feitiço estampados, você pode copiar o outro e jogar a cópia sem pagar seu custo de mana.]]></LOCALISED_TEXT>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="another">
    local oDC = RSN_ObjectDC()
    local firstcard = oDC:Get_CardPtr(0)
    local secondcard = oDC:Get_CardPtr(1)
    if TriggerObject():GetCardName() == firstcard:GetCardName() then
       oDC:Int_Set(13, 2)
       return true
    elseif TriggerObject():GetCardName() == secondcard:GetCardName() then
       oDC:Int_Set(13, 1)
       return true
    end
return false
</TRIGGER>

    <RESOLUTION_TIME_ACTION>
    local oDC = RSN_ObjectDC()
    local card = EffectSource()
     if oDC:Int_Get(10) == 1 then
       local player = EffectController()
       player:BeginNewMultipleChoice()
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MAKE_SORCERY_COPY" )
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_NOT_MAKE_SORCERY_COPY" )
      player:AskMultipleChoiceQuestion( "CARD_QUERY_COPY_OTHER_IMPRINTED_SORCERY", card )
     end
    </RESOLUTION_TIME_ACTION>

   <RESOLUTION_TIME_ACTION>
    local oDC = RSN_ObjectDC()
    if oDC:Int_Get(10) == 1 then
       local result = EffectController():GetMultipleChoiceResult()
       if result == 0 then
         if oDC:Int_Get(13) == 1 then
           local oVal = oDC:Int_Get(11)
           oVal = oVal + 1
           oDC:Int_Set(11, oVal)
         else
           local oVal = oDC:Int_Get(12)
           oVal = oVal + 1
           oDC:Int_Set(12, oVal)
         end
       end
    else
     oDC:Int_Set(10, 1)
    end
    </RESOLUTION_TIME_ACTION>

</TRIGGERED_ABILITY>

<ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Cast a copy of an exiled sorcery.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Lancer une copie d'une sorcellerie en exil.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Lanzar una copia de una hechicería exiliada]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[werfen eine Kopie eines Exil-Zauberei.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lancia una copia di una stregoneria esiliata.]]></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[lançou uma cópia de uma feitiçaria exilada.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[施放放逐巫術的副本。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[施放放逐巫術的副本。]]></LOCALISED_TEXT>
      <COST mana_cost="{0}" type="Mana" />
    <AVAILABILITY sorcery_time="1" />
    <AVAILABILITY>
     local oDC = RSN_ObjectDC()
     if oDC:Int_Get(11) &gt; 0 or oDC:Int_Get(12) &gt; 0 then
        return true
     else
        return false
     end
    </AVAILABILITY>

     <RESOLUTION_TIME_ACTION>
      local oDC = RSN_ObjectDC()
      local firstcard = oDC:Get_CardPtr(0)
      local secondcard = oDC:Get_CardPtr(1)
      local Aname = firstcard:GetCardName()
      local Bname = secondcard:GetCardName()
      local oPlayer = EffectController()
      local source = EffectSource()
      oPlayer:BeginNewMultipleChoice()
      oPlayer:AddMultipleChoiceAnswer( Aname, (oDC:Int_Get(11) &gt; 0) )
      oPlayer:AddMultipleChoiceAnswer( Bname, (oDC:Int_Get(12) &gt; 0) )
      oPlayer:AskMultipleChoiceQuestion( "CARD_QUERY_CHOOSE_SPELL_TO_COPY", source )
    </RESOLUTION_TIME_ACTION>

     <RESOLUTION_TIME_ACTION>
    local oDC = RSN_ObjectDC()
    oDC:Int_Set(10, 0)
    local result = EffectController():GetMultipleChoiceResult()
    if result == 0 then
    local card = oDC:Get_CardPtr(0)
    local copy = EffectController():CopySpell(card)
      if EffectController():CanCastSpellForFree(copy) then
         EffectController():CastSpellForFree( copy )
         local oVal = oDC:Int_Get(11)
         oVal = oVal - 1
         oDC:Int_Set(11, oVal)
      end
    else
    local card = oDC:Get_CardPtr(1)
    local copy = EffectController():CopySpell(card)
      if EffectController():CanCastSpellForFree(copy) then
         EffectController():CastSpellForFree( copy )
         local oVal = oDC:Int_Get(12)
         oVal = oVal - 1
         oDC:Int_Set(12, oVal)
      end
    end
    </RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
</CARD_V2>
Here you can find the download :
SPELLWEAVER_HELIX_48047.zip
Card XML + TDX + CARD_UI_TEXT.XML
(573.66 KiB) Downloaded 215 times


IMPORTANT INFORMATIONS
The download zip file include a CARD_UI_TEXT.XML this file is needed for queries translation.
Copy it into
DATA_DLC_DECK_BUILDER_CUSTOM\DATA_ALL_PLATFORMS\TEXT_PERMANENT folder.
If you already have a file with the same name you can rename this one adding a number at end Example : CARD_UI_TEXT.XML to CARD_UI_TEXT2.XML


This card to work properly needs Riiak RSN_Object function installed.
You can download it here :
Riiak RSN_Object function | Open
http://mtg.dragonanime.org/index.php?title=DotP_2014:_ObjectDC_Functions#Download


Here there is the second requested card Forbidden Orchard.
This card is made using Riiak Mana Functions
Riiak Manual Mana Functions | Open
http://mtg.dragonanime.org/index.php?title=DotP_2014:_Manual_Mana_Functions


Forbidden Orchard | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FORBIDDEN_ORCHARD_282541" />
  <CARDNAME text="FORBIDDEN_ORCHARD" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Forbidden Orchard]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cerisaie interdite]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Huerto prohibido ]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verbotener Obstgarten]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Frutteto Proibito]]></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[Pomar Proibido]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="282541" />
  <ARTID value="282541" />
  <ARTIST name="Daniel Ljunggren" />
  <CASTING_COST cost="" />
  <TYPE metaname="Land" />
  <EXPANSION value="V12" />
  <RARITY metaname="M" />

<ACTIVATED_ABILITY forced_skip="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add one mana of any color to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez un mana de la couleur de votre choix à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega un maná de cualquier color a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um ein Mana einer beliebigen Farbe.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi un mana di un qualsiasi colore alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色1色のマナ1点を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 당신의 마나풀에 원하는 색의 마나 한 개를 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте одну ману любого цвета в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione um mana de qualquer cor à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加一点任意颜色的法术力到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加一點任意顏色的魔法力到你的魔法力池中。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
         local oPlayer = EffectController()
         local oCard = EffectSource()
         if (oPlayer ~= nil) then
            oPlayer:BeginNewMultipleChoice()
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
            oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
         end
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local nColour = EffectController():GetMultipleChoiceResult() + 1
         if (nColour == COLOUR_BLACK) then
            RSN_Produce( "{B}", 1 )
         elseif (nColour == COLOUR_BLUE) then
            RSN_Produce( "{U}", 1 )
         elseif (nColour == COLOUR_GREEN) then
            RSN_Produce( "{G}", 1 )
         elseif (nColour == COLOUR_RED) then
            RSN_Produce( "{R}", 1 )
         elseif (nColour == COLOUR_WHITE) then
            RSN_Produce( "{W}", 1 )
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
         RSN_MarkManaAbilityEnd()
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="upkeep" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY type="in_response" response_target="1" />
   </ACTIVATED_ABILITY>
   <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         RSN_MarkCanProduceMana( "{B}{G}{R}{U}{W}" )
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local nDefaultColour = COLOUR_GREEN
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local nColour = RSN_GetLastProducedColour()
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            if (nColour ~= COLOUR_COLOURLESS) then
               oCharacteristics:GrantAbility( nColour )
            else
               oCharacteristics:GrantAbility( nDefaultColour )
            end
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
      <TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
      <RESOLUTION_TIME_ACTION>
         RSN_ClearProducedMana()
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <MANA_ABILITY resource_id="1">
      <COST type="TapSelf" />
      <PRODUCES amount="{W}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="2">
      <COST type="TapSelf" />
      <PRODUCES amount="{U}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="3">
      <COST type="TapSelf" />
      <PRODUCES amount="{B}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="4">
      <COST type="TapSelf" />
      <PRODUCES amount="{R}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="5">
      <COST type="TapSelf" />
      <PRODUCES amount="{G}" />
   </MANA_ABILITY>

 <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever you tap Forbidden Orchard for mana, target opponent puts a 1/1 colorless Spirit creature token onto the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que vous engagez la Cerisaie interdite pour du mana, mettez en jeu un jeton de créature 1/1 incolore Esprit sous le contrôle de l'adversaire ciblé.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que gires el Huerto prohibido para obtener maná, pon en juego bajo el control del oponente objetivo una ficha de criatura Espíritu incolora 1/1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn du den Verbotenen Obstgarten für Mana tappst, bringe einen 1/1 farblosen Geistspielstein unter der Kontrolle eines Gegners deiner Wahl ins Spiel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta TAPpi il Frutteto Proibito per attingere mana, metti in gioco una pedina creatura Spirito 1/1 incolore sotto il controllo di un avversario bersaglio.]]></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 бесцветный Spirit на поле битвы.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que você virar Pomar Proibido para gerar mana, coloque em jogo uma ficha de criatura incolor 1/1 do tipo Espírito sob o controle do oponente alvo.]]></LOCALISED_TEXT>
    <TRIGGER value="BECAME_TAPPED_FOR_MANA" simple_qualifier="self" />
    <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_LOSE_2" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetFilterType( FILTER_TYPE_PLAYERS )
    filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION>
    local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
     MTG():PutTokensOntoBattlefield( "TOKEN_SPIRIT_1_1_7282901", 1, target_player )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="TOKEN_SPIRIT_1_1_7282901" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
</CARD_V2>
Here you can find the card download (including a colorless 1/1 token) :
FORBIDDEN_ORCHARD_282541.zip
Card XML + TDX + TOKEN XML and TDX.XML
(874.5 KiB) Downloaded 232 times
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby NeoAnderson » 19 Dec 2013, 13:54

Deadpoolmtg wrote:Missed some important cards for some decks, it is possible to code them?(If yes, could someone do it?) Strange someone not having coded them yet...

Spellweaver Helix
Forbidden Orchard
Tinder Wall
Propaganda
Ghostly Prison(found one whith cmc 1...)
Desperate Ritual

No need to hurry :)
Another requested card Tinder Wall:
Tinder Wall | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="TINDER_WALL_184678" />
  <CARDNAME text="TINDER_WALL" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Tinder Wall]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mur d'amadou]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Muro de leña]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zundermauer]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Muro Infiammabile]]></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[Barreira de Pinheiros]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="184678" />
  <ARTID value="184678" />
  <ARTIST name="Rick Emond" />
  <CASTING_COST cost="{G}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Plant" />
  <SUB_TYPE metaname="Wall" />
  <EXPANSION value="ME2" />
  <RARITY metaname="C" />
  <POWER value="0" />
  <TOUGHNESS value="3" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Defender]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Défenseur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Defensor.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verteidiger]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Difensore]]></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[Defensor]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_DEFENDER" />
  </STATIC_ABILITY>


   <ACTIVATED_ABILITY forced_skip="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Sacrifice Tinder Wall: Add {R}{R} to your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Sacrifiez le Mur d'amadou: Ajoutez {R} {R} à votre réserve de mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sacrificar Muro de leña: Agrega {R} {R} a tu reserva de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Opfere die Zundermauer: Erhöhe deinen Manavorrat um {R}{R}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Sacrifica il Muro Infiammabile: Aggiungi {R}{R} alla tua riserva di mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[火口壁を生け贄に捧げる:あなたのマナ·プールに{R}{R}を加える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부싯깃 벽을 희생한다 : 당신의 마나 풀에 {R} {R}를 추가합니다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Жертвоприношение трут Уолл: Добавить {R} {R} в ваше хранилище маны.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Sacrificar Barreira de Pinheiros: Adicione {R} {R} à sua reserva de mana.]]></LOCALISED_TEXT>
      <COST type="SacrificeSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_Produce( "{R}", 2 )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      RSN_MarkManaAbilityEnd()
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="upkeep" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY type="in_response" response_target="1" />
   </ACTIVATED_ABILITY>

<TRIGGERED_ABILITY  linked_ability_group="1" forced_skip="1">
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
   <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
           LinkedDC():Int_Set(1001, 0)
    end
   </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1" forced_skip="1" active_zone="ZONE_ANY">
<TRIGGER value="BLOCKS_A_CREATURE" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
 local card = SecondaryObject()
 if card ~= nil then
     LinkedDC():Set_CardPtr( 1000, card )
     LinkedDC():Protect_CardPtr(1000)
     LinkedDC():Int_Set(1001, 1)
 end
</RESOLUTION_TIME_ACTION>   
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1" forced_skip="1">
<TRIGGER value="BEGINNING_OF_STEP">
local oVal = LinkedDC():Int_Get(1001)
local source = EffectSource()
    if MTG():GetStep() == STEP_END_OF_COMBAT and oVal == 1 and source ~= nil then
       LinkedDC():Int_Set(1001, 0)
       return true
    else
       return false
    end
</TRIGGER>
</TRIGGERED_ABILITY>

  <ACTIVATED_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{R}, Sacrifice Tinder Wall: Tinder Wall deals 2 damage to target creature it’s blocking.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{R}, Sacrifiez le Mur d'amadou: le Mur d'amadou inflige 2 blessures à une cible, créature qu'il bloque.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{R}, Sacrificar Muro de leña: Muro de leña have 2 puntos de daño a la criatura que está bloqueando objetivo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{R}, Sacrifice Zundermauer: Zundermauer 2 Schadens einer Kreatur sie blockt Ziel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{R}, Sacrifica il Muro Infiammabile: Il Muro Infiammabile infligge 2 danni alla creatura bersaglio che esso sta bloccando.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{R}, 火口壁を生け贄に捧げる:火口壁、それがブロックしているクリーチャー1体を対象とし、2点のダメージを与える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{R}, 부싯깃 벽을 희생 : 부싯깃 벽이 막고 생물을 대상으로 2 데미지.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{R}, Жертвоприношение трут Уолл: Трут Уолл наносит 2 повреждения целевому существу это блокирующий.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{R}, Sacrificar Barreira de Pinheiros: Barreira de Pinheiros 2 pontos de dano à criatura alvo que está bloqueando.]]></LOCALISED_TEXT>
    <COST type="Mana" mana_cost="{R}" />
    <COST type="generic">
    <PREREQUISITE>
      return true
    </PREREQUISITE>
   <RESOLUTION_TIME_ACTION>
    local oVal = LinkedDC():Int_Get(1001)
    if oVal == 1 and Object() ~= nil then
      LinkedDC():Int_Set(1001, 0)
      local card = LinkedDC():Get_CardPtr(1000)
      if card ~= nil then
         EffectDC():Set_CardPtr( 1, card )
         EffectDC():Protect_CardPtr(1)
      end
    end
  </RESOLUTION_TIME_ACTION>
  </COST>
  <COST type="SacrificeSelf" />

<RESOLUTION_TIME_ACTION>
  local card = EffectDC():Get_CardPtr(1)
  if card ~= nil then
     EffectSourceLKI():DealDamageTo(2, card)
  end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
  <HELP title="MORE_INFO_BADGE_TITLE_6" body="MORE_INFO_BADGE_BODY_6" 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>
Here you can download :
TINDER_WALL_184678.zip
Card Xml + Tdx
(599.04 KiB) Downloaded 220 times
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 19 Dec 2013, 14:40

I don't think the copy is stored and played later. The gatherer text says if you don't want to cast the copy the copy will cease to exist the next time state based actions are checked. See the bottom of this link. Another interesting thing to note is if you imprint 2 copies of the same card, Spellweaver Helix only triggers once.

If you are having problems casting the card after you copy it I'd suggest to look at the cipher ability if you haven't yet. It seems very similar. There are a handful of cipher cards in the vanilla game.

http://gatherer.wizards.com/Pages/Card/ ... seid=48047
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby NeoAnderson » 19 Dec 2013, 14:58

MC Brodie wrote:I don't think the copy is stored and played later. The gatherer text says if you don't want to cast the copy the copy will cease to exist the next time state based actions are checked. See the bottom of this link. Another interesting thing to note is if you imprint 2 copies of the same card, Spellweaver Helix only triggers once.

If you are having problems casting the card after you copy it I'd suggest to look at the cipher ability if you haven't yet. It seems very similar. There are a handful of cipher cards in the vanilla game.

http://gatherer.wizards.com/Pages/Card/ ... seid=48047
Thanks a lot my friend for useful link.
Now it is more clear, also if i think it will be more complex to code.
Cipher cards can't help, because that effect is applied on creature you control, and when they deal damage you activate the effect, and thi happen during your turn.
I will try some tests now to see what i can do to make it compliant to Mtg Rules, any help will be appreciated :-)
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 19 Dec 2013, 15:59

Does the "can cast for free" function check game phases? The cipher code might work. I think most if not all cipher cards are at sorcery speed. When the cipher ability triggers it should be during the combat phase after damage not main phase 2. I'd consider at least trying the cipher code with this pseudo code for the trigger:

Code: Select all
 trigger on spell cast
If spellcast == ImprintA then
     return true
elseif spellcast == ImprintB then
     return true
end
return false
With this trigger it should copy only once if the two imprints are the same. Then use similar code for the "copy the card" part by replacing the return true with the copy code. (you could reduce the trigger down to one return line but i used the if statement to illustrate a way to do the copy code).

Edit - I just looked at your trigger and saw its what I posted :). That should work unless I'm badly mistaken. Also, does a LinkedDC work in this case or does that not work for imprint?

Edit - Thanks sumo I wasn't even thinking about those other checks I'm the trigger.
Last edited by MC Brodie on 19 Dec 2013, 16:23, edited 4 times in total.
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby sumomole » 19 Dec 2013, 16:08

NeoAnderson wrote:Now it is more clear, also if i think it will be more complex to code.
Cipher cards can't help, because that effect is applied on creature you control, and when they deal damage you activate the effect, and thi happen during your turn.
I will try some tests now to see what i can do to make it compliant to Mtg Rules, any help will be appreciated :-)
This card is simpler than you think.
For the first ability, first you need to choose targets, the target's zone is graveyard, type is sorcery and count is 2. Second, when the ability resolves you need to exile these two target cards, before exile you also need to use LinkedDC to store them, just like Oblivion Ring.
For the second ability, first it has three trigger conditions: the spell must be a card, rather than a copy; there must be two sorcery cards are exiled by Spellweaver Helix, rather than one or not; and the spell has the same name as one of the cards exiled with Spellweaver Helix. Second, when the ability resolves you need to check the number of the cards exiled again, if less than two, nothing will happen, then if the spell has the same name as one of them, another card will be able to be copied and cast, cipher ability will tell you how to copy a card and cast the copy, finally don't forget the "may", although there are two "may", but in the game, you just need to code once.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby NeoAnderson » 19 Dec 2013, 16:56

MC Brodie wrote:Does the "can cast for free" function check game phases? The cipher code might work. I think most if not all cipher cards are at sorcery speed. When the cipher ability triggers it should be during the combat phase after damage not main phase 2. I'd consider at least trying the cipher code with this pseudo code for the trigger:

Code: Select all
 trigger on spell cast
If spellcast == ImprintA then
     return true
elseif spellcast == ImprintB then
     return true
end
return false
With this trigger it should copy only once if the two imprints are the same. Then use similar code for the "copy the card" part by replacing the return true with the copy code. (you could reduce the trigger down to one return line but i used the if statement to illustrate a way to do the copy code).

Edit - I just looked at your trigger and saw its what I posted :). That should work unless I'm badly mistaken. Also, does a LinkedDC work in this case or does that not work for imprint?

Edit - Thanks sumo I wasn't even thinking about those other checks I'm the trigger.
Thanks my friend for the suggestion, as you said also my trigger condition make one copy because it return true before to check the second card.
About the problem to cast a sorcery while is not your turn i resolved, just granting FLASH into the same resolution block to the copy before cast it.



sumomole wrote:
NeoAnderson wrote:Now it is more clear, also if i think it will be more complex to code.
Cipher cards can't help, because that effect is applied on creature you control, and when they deal damage you activate the effect, and thi happen during your turn.
I will try some tests now to see what i can do to make it compliant to Mtg Rules, any help will be appreciated :-)
This card is simpler than you think.
For the first ability, first you need to choose targets, the target's zone is graveyard, type is sorcery and count is 2. Second, when the ability resolves you need to exile these two target cards, before exile you also need to use LinkedDC to store them, just like Oblivion Ring.
For the second ability, first it has three trigger conditions: the spell must be a card, rather than a copy; there must be two sorcery cards are exiled by Spellweaver Helix, rather than one or not; and the spell has the same name as one of the cards exiled with Spellweaver Helix. Second, when the ability resolves you need to check the number of the cards exiled again, if less than two, nothing will happen, then if the spell has the same name as one of them, another card will be able to be copied and cast, cipher ability will tell you how to copy a card and cast the copy, finally don't forget the "may", although there are two "may", but in the game, you just need to code once.
I would also point that May conditions are 3 :
a. When it enter onto battlefield "you may exile 2 sorceries from a single graveyard"
b. When a spell with same name of exile sorceries is played you may make a copy"
c. You may cast the copy for free


Are all needed because you can also decide to make a copy but without cast it. I know i useless but the card say so.


I have revised my card Sumomole could you test it and let me know if it could be ok?
This version is made with Riiak RSN_ObjectDC function, it's a long story but when i was making the card for the first time i started with LinkedDC as i have seen from other imprint card examples..but i eancountered crashes of the game without log (lately i have understand the problem was cause when i cast a sorcery copy during opponent turn), so i tried many different changes but finally when i understand where the problem was i have already turned it to RSN_Objects..so be patient.


Compliant to these rules :
1. If the two imprinted sorcery cards have the same name and a card with that name is cast, only one copy is created, not two.
2. Spellweaver Helix's second ability creates a copy of the imprinted card in the Exile zone (that's where the imprinted sorcery card is), then allows you to cast it without paying its mana cost.
3. You cast the copy while this ability is resolving, and still on the stack. Normally, you're not allowed to cat spells or activate abilities at this time. Spellweaver Helix's ability breaks this rule. (The card that triggered this ability is also still on the stack.)
4. If you don't want to cast the copy, you can choose not to; the copy ceases to exist the next time state-based actions are checked.
5. The creation of the copy and then the casting of the copy are both optional.


Spellweaver Helix revised | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="SPELLWEAVER_HELIX_48047" />
  <CARDNAME text="SPELLWEAVER_HELIX" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Spellweaver Helix]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Hélice tisse-sort]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Hélice tejehechizos]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spruchweber-Spirale]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Spirale Tessimagie]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪文織りのらせん]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Spellweaver Helix]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Spellweaver Helix]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Hélice Tece-Mágicas]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="48047" />
  <ARTID value="48047" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{3}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="MRD" />
  <RARITY metaname="R" />

<TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Imprint — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Empreinte Quand l’Hélice tisse-sort arrive en jeu, vous pouvez retirer de la partie deux cartes de rituel ciblées dans un même cimetière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Estampa Cuando la Hélice tejehechizos entre en juego, puedes remover del juego dos cartas de conjuro objetivo de un único cementerio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Einprägen Wenn die Spruchweber-Spirale ins Spiel kommt, kannst du zwei Hexereikarten deiner Wahl aus einem einzigen Friedhof ganz aus dem Spiel entfernen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Imprimere — Quando la Spirale Tessimagie entra nel campo di battaglia, puoi esiliare due carte stregoneria bersaglio da un singolo cimitero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[刻印 ― 呪文織りの螺旋が場に出たとき、あなたはいずれか1つの墓地にあるソーサリー・カード2枚を対象とする。あなたはそれらをゲームから取り除いてもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Imprint — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Imprint — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Estampar Quando Hélice Tece-Mágicas entra em jogo, você pode remover de jogo dois cards alvo de feitiço de um único cemitério.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />

    <RESOLUTION_TIME_ACTION>
    local num_Players = MTG():GetNumberOfPlayers()
    for i = 0, (num_Players-1) do
    local oTPlayer = MTG():GetNthPlayer(i)
     if oTPlayer ~= nil then
       local filter = ClearFilter()
       filter:SetZone( ZONE_GRAVEYARD, oTPlayer)
       filter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
       local num_of_sorceries = filter:Count()
       if num_of_sorceries &gt; 1 then
          EffectDC():Set_Int(10+i, 2)
       end
     end
    end
    </RESOLUTION_TIME_ACTION>

    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:SetFilterType( FILTER_TYPE_PLAYERS )
    local subfilter = filter:AddSubFilter_Or()
    local num_Players = MTG():GetNumberOfPlayers()
    local j = 0
    for i = 0, (num_Players-1) do
       if EffectDC():Get_Int(10+i) &gt; 1 then
          subfilter:Add( FE_PLAYER_INSTANCE, OP_IS, MTG():GetNthPlayer(i) )
          j = j + 1
       end
    end
    if j &gt; 0 then
       local player = EffectController()
       player:BeginNewMultipleChoice()
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_EXILE_TWO_SORCERIES" )
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_NOT_EXILE_TWO_SORCERIES" )
      player:AskMultipleChoiceQuestion( "CARD_QUERY_EXILE_TWO_SORCERIES", Object() )
    end
    </RESOLUTION_TIME_ACTION>

  <RESOLUTION_TIME_ACTION>
  local result = EffectController():GetMultipleChoiceResult()
  if result == 0 then
    local filter = ClearFilter()
    filter:SetFilterType( FILTER_TYPE_PLAYERS )
    local subfilter = filter:AddSubFilter_Or()
    local num_Players = MTG():GetNumberOfPlayers()
    local j = 0
    for i = 0, (num_Players-1) do
       if EffectDC():Get_Int(10+i) &gt; 1 then
          subfilter:Add( FE_PLAYER_INSTANCE, OP_IS, MTG():GetNthPlayer(i) )
          j = j + 1
       end
    end
    if j &gt; 0 then
       EffectController():SetItemCount( 1 )
     for i = 0,(1-1) do
           EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_PLAYER" )
     end
       EffectController():ChooseItems( EffectDC():Make_Targets(1) )
    end
  end
  </RESOLUTION_TIME_ACTION>

   <RESOLUTION_TIME_ACTION>
    local oTPlayer = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_PlayerPtr(0)
    if oTPlayer ~= nil then
       local filter = ClearFilter()
       filter:SetZone( ZONE_GRAVEYARD, oTPlayer)
       filter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
       EffectController():SetItemCount( 2 )
       for i = 0,(2-1) do
           EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
       end
        EffectController():ChooseItems( EffectDC():Make_Targets(2) )
    end
    </RESOLUTION_TIME_ACTION>


    <RESOLUTION_TIME_ACTION>
    local firstcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(0)
    local secondcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(1)
    if firstcard ~= nil then
        EffectDC():Get_Targets(2):Protect_CardPtr(0)
        firstcard:Exile()
    end
    if secondcard ~= nil then
        EffectDC():Get_Targets(2):Protect_CardPtr(1)
        secondcard:Exile()
    end
    </RESOLUTION_TIME_ACTION>

    <RESOLUTION_TIME_ACTION>
    local firstcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(0)
    local secondcard = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(1)
    local source = EffectSource()
    local oDC = RSN_ObjectDC()
    if firstcard ~= nil then
        oDC:Set_CardPtr( 0, firstcard )
       oDC:Protect_CardPtr(0)
        firstcard:NailOnto(source)
    end
    if secondcard ~= nil then
       oDC:Set_CardPtr(1, secondcard)
       oDC:Protect_CardPtr(1)
        secondcard:NailOnto(source)
    end
     oDC:Int_Set(10, 1)
     oDC:Int_Set(11, 0)
     oDC:Int_Set(12, 0)
    </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>



<TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’une carte est jouée, si elle a le même nom qu’une des cartes dont l’Hélice tisse-sort a l’empreinte, vous pouvez copier l’autre et en jouer la copie sans payer son coût de mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que se juegue una carta, si tiene el mismo nombre que una de las cartas de conjuro estampadas, puedes copiar la otra y jugar la copia sin pagar su coste de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn eine Karte gespielt wird, die denselben Namen wie eine der eingeprägten Hexereikarten hat, kannst du die andere Karte kopieren und die Kopie spielen, ohne ihre Manakosten zu bezahlen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta viene lanciata una carta, se ha lo stesso nome di una delle due carte esiliate con la Spirale Tessimagie, puoi copiare l’altra. Se lo fai, puoi lanciare la copia senza pagare il suo costo di mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかのカードがプレイされるたび、それが刻印されているいずれかのソーサリー・カードと同じ名前を持つ場合、あなたはもう一方をコピーし、マナ・コストを支払わずにプレイしてもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que um card for jogado, se ele tiver o mesmo nome que um dos cards de feitiço estampados, você pode copiar o outro e jogar a cópia sem pagar seu custo de mana.]]></LOCALISED_TEXT>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="another">
    local oDC = RSN_ObjectDC()
    local firstcard = oDC:Get_CardPtr(0)
    local secondcard = oDC:Get_CardPtr(1)
    if TriggerObject():GetCardName() == firstcard:GetCardName() then
       oDC:Int_Set(13, 2)
       return true
    elseif TriggerObject():GetCardName() == secondcard:GetCardName() then
       oDC:Int_Set(13, 1)
       return true
    end
return false
</TRIGGER>

    <RESOLUTION_TIME_ACTION>
    local oDC = RSN_ObjectDC()
    local card = EffectSource()
     if oDC:Int_Get(10) == 1 then
       local player = EffectController()
       player:BeginNewMultipleChoice()
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_MAKE_SORCERY_COPY" )
      player:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_NOT_MAKE_SORCERY_COPY" )
      player:AskMultipleChoiceQuestion( "CARD_QUERY_COPY_OTHER_IMPRINTED_SORCERY", card )
     end
    </RESOLUTION_TIME_ACTION>

   <RESOLUTION_TIME_ACTION>
    local oDC = RSN_ObjectDC()
    if oDC:Int_Get(10) == 1 then
       local result = EffectController():GetMultipleChoiceResult()
       if result == 0 then
        local delayDC = EffectDC():Make_Chest(4)
        delayDC:Set_CardPtr(10, TriggerObject())
         delayDC:Protect_CardPtr(10)
          MTG():CreateDelayedTrigger(1, delayDC)
         if oDC:Int_Get(13) == 1 then
           oDC:Int_Set(11, 1)
         else
           oDC:Int_Set(12, 1)
         end
       end
    end
    </RESOLUTION_TIME_ACTION>

<RESOLUTION_TIME_ACTION>
local oDC = RSN_ObjectDC()
if oDC:Int_Get(10) == 1 then
   if oDC:Int_Get(11) &gt; 0 then
      local firstcard = oDC:Get_CardPtr(0)
      local Aname = firstcard:GetCardName()
      local oPlayer = EffectController()
      local source = EffectSource()
      oPlayer:BeginNewMultipleChoice()
      oPlayer:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_CAST_COPY_FOR_FREE" )
      oPlayer:AddMultipleChoiceAnswer( "CARD_QUERY__NEO_OPTION_DO_NOTHING" )
      oPlayer:AskMultipleChoiceQuestion( Aname, source )
   elseif oDC:Int_Get(12) &gt; 0 then
      local secondcard = oDC:Get_CardPtr(1)
      local Bname = secondcard:GetCardName()
      local oPlayer = EffectController()
      local source = EffectSource()
      oPlayer:BeginNewMultipleChoice()
      oPlayer:AddMultipleChoiceAnswer( "CARD_QUERY_OPTION_CAST_COPY_FOR_FREE" )
      oPlayer:AddMultipleChoiceAnswer( "CARD_QUERY__NEO_OPTION_DO_NOTHING" )
      oPlayer:AskMultipleChoiceQuestion( Bname, source )
  end
end
</RESOLUTION_TIME_ACTION>

<RESOLUTION_TIME_ACTION>
local oDC = RSN_ObjectDC()
if oDC:Int_Get(10) == 1 then
  local result = EffectController():GetMultipleChoiceResult()
  if result == 0 then
     oDC:Int_Set(10, 0)
     if oDC:Int_Get(11) &gt; 0 then
        local card = oDC:Get_CardPtr(0)
        local copy = EffectController():CopySpell(card)
        local characteristics = copy:GetCurrentCharacteristics()
        characteristics:Bool_Set( CHARACTERISTIC_FLASH, 1 )
        if EffectController():CanCastSpellForFree(copy) then
           EffectController():CastSpellForFree( copy )
           oDC:Int_Set(11, 0)
        end
    elseif oDC:Int_Get(12) &gt; 0 then
        local card = oDC:Get_CardPtr(1)
        local copy = EffectController():CopySpell(card)
        local characteristics = copy:GetCurrentCharacteristics()
        characteristics:Bool_Set( CHARACTERISTIC_FLASH, 1 )
        if EffectController():CanCastSpellForFree(copy) then
           EffectController():CastSpellForFree( copy )
           oDC:Int_Set(12, 0)
        end
    end
  end     
else
  oDC:Int_Set(10, 1)
end
</RESOLUTION_TIME_ACTION>

</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="1">
<TRIGGER value="SPELL_RESOLVED">
    local oDC = RSN_ObjectDC()
    if TriggerObject() == EffectDC():Get_CardPtr(10) then
       oDC:Int_Set(11, 0)
       oDC:Int_Set(12, 0) 
       return true
    end
return false
</TRIGGER>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>

</CARD_V2>
SPELLWEAVER_HELIX_48047 REVISED.zip
Card XML + TDX + CARD_UI_TEXT.XML
(573.84 KiB) Downloaded 183 times


IMPORTANT INFORMATIONS
The download zip file include a CARD_UI_TEXT.XML this file is needed for queries translation.
Copy it into
DATA_DLC_DECK_BUILDER_CUSTOM\DATA_ALL_PLATFORMS\TEXT_PERMANENT folder.
If you already have a file with the same name you can rename this one adding a number at end Example : CARD_UI_TEXT.XML to CARD_UI_TEXT2.XML


This card to work properly needs Riiak RSN_Object function installed.
You can download it here :
Riiak RSN_Object function | Open
http://mtg.dragonanime.org/index.php?title=DotP_2014:_ObjectDC_Functions#Download
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby sumomole » 19 Dec 2013, 17:20

NeoAnderson wrote:I have revised my card Sumomole could you test it and let me know if it could be ok?
I just want to say it is really too looong! :mrgreen:
1. your first ability has no target, and you only need to choose two cards from graveyard, don't need to choose a player.
2. in 2014 "may "is a specific code, you don't need use multiple choice.
3. CastSpellForFree can cast a spell at any time, it would have been cast to ignore the timing, so CHARACTERISTIC_FLASH is redundant.
4. I'm sure LinkedDC not be a problem, so you don't need RSN_ObjectDC.
5. the trigger condition of the second ability isn't complete, you can look at what I wrote above.
I try to code it, here is my version.
untested | Open
Code: Select all
  <TRIGGERED_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|Imprint| — When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
    <TARGET tag="CARD_QUERY_CHOOSE_CARD_TO_EXILE" definition="0" compartment="0" count="2" />
    <MAY />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetZone( ZONE_GRAVEYARD )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION>
    local targetDC = EffectDC():Get_Targets(0)
    if targetDC ~= nil then
      local number = targetDC:Count()
      for i = 0,(number-1) do
        local target = targetDC:Get_CardPtr(i)
        if target ~= nil then
           target:Exile()
           local count_so_far = LinkedDC():Get_Int(0)
            LinkedDC():Set_CardPtr(1 + count_so_far, target)
            LinkedDC():Set_Int(0, count_so_far + 1)
        end
      end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    local count_so_far = LinkedDC():Get_Int(0)
    if source ~= nil and count_so_far &gt; 0 then
      for i = 1,(count_so_far) do
        local target = LinkedDC():Get_CardPtr(i)
         if target ~= nil then
           target:NailOnto(source)
        end
      end
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_NEUTRAL" />
    <AUTO_SKIP no_effect_source="1" />
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED">
    local first_card = LinkedDC():Get_CardPtr(1)
    local second_card = LinkedDC():Get_CardPtr(2)
    if first_card ~= nil and second_card ~= nil and TriggerObject():IsToken() == false and TriggerObject():WasCast() then
      if TriggerObject():GetCardName() == first_card:GetCardName() or TriggerObject():GetCardName() == second_card:GetCardName() then
         return true
      end
    end
    return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local first_card = LinkedDC():Get_CardPtr(1)
    local second_card = LinkedDC():Get_CardPtr(2)
    if first_card ~= nil and second_card ~= nil then
      if TriggerObjectLKI():GetCardName() == first_card:GetCardName() then
         local copy = EffectController():CopySpell( second_card )
         if EffectController():CanCastSpellForFree(copy) then
            EffectController():CastSpellForFree(copy)
         end
       elseif TriggerObjectLKI():GetCardName() == second_card:GetCardName() then
         local copy = EffectController():CopySpell( first_card )
         if EffectController():CanCastSpellForFree(copy) then
            EffectController():CastSpellForFree(copy)
         end
      end
    end
    </RESOLUTION_TIME_ACTION>
    <MAY always_prompt="1" />
    <AUTO_SKIP>
    return LinkedDC():Get_CardPtr(1) == nil or LinkedDC():Get_CardPtr(2) == nil
    </AUTO_SKIP>
  </TRIGGERED_ABILITY>
NeoAnderson wrote:I would also point that May conditions are 3 :
a. When it enter onto battlefield "you may exile 2 sorceries from a single graveyard"
b. When a spell with same name of exile sorceries is played you may make a copy"
c. You may cast the copy for free
yes, and b&c in the second ability, so you can only code once, I don't think code twice has any help to the game. if I am wrong, please tell me.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby NeoAnderson » 19 Dec 2013, 17:54

sumomole wrote:I just want to say it is really too looong! :mrgreen:
Ahahha I know sometimes my mind follow its weird paths :lol:
Anyway i would answer to you point by point :
sumomole wrote:1. your first ability has no target, and you only need to choose two cards from graveyard, don't need to choose a player.
I made it in this way because we need that the cards exiled are in the same graveyard, so i thought to check before which graveyard are suitable for this condition.
Are you sure that simply using Target definition with items_count=2 and with Set Zone Graveyard the target will be picked from the same graveyard??
sumomole wrote:2. in 2014 "may "is a specific code, you don't need use multiple choice.
I know about May into Dotp 2014 but honestly i still don't understand how is supposed to work, does it automatically show a question? because into many cards i tried May condition seem simply skipped without letting you choose!
sumomole wrote:3. CastSpellForFree can cast a spell at any time, it would have been cast to ignore the timing, so CHARACTERISTIC_FLASH is redundant.
As i said to MC Brodie this is my solution to a problem i have encountered, if i tried to copy a sorcery during opponents turn the game was crashing, now i don't know if this issue is only for me or not! but when i checked for other cards with imprint already coded i only find some example with instants, or other abilities played during your turn.
sumomole wrote:4. I'm sure LinkedDC not be a problem, so you don't need RSN_ObjectDC.
As i said before i know the problem is not linkedDC, but now i have already coded the card and i should have to change it again :-)please forgive my laziness.
sumomole wrote:5. the trigger condition of the second ability isn't complete, you can look at what I wrote above.
I try to code it, here is my version.
Probably i forget to add nil check for both cards during the trigger, about WasCast() have you tried it with 2014? I tried to use
with another card sometime ago but the game doesn't recognize it.
About IsToken function i was not sure if it could be used for spell cast with Copyspell now i know :-)
NeoAnderson wrote:I would also point that May conditions are 3 :
a. When it enter onto battlefield "you may exile 2 sorceries from a single graveyard"
b. When a spell with same name of exile sorceries is played you may make a copy"
c. You may cast the copy for free
sumomole wrote:yes, and b&c in the second ability, so you can only code once, I don't think code twice has any help to the game. if I am wrong, please tell me.
Honestly I agree with you but i just tried to keep the MTG rules for this card.
If you don't want to cast the copy, you can choose not to; the copy ceases to exist the next time state-based actions are checked. This rule is reported on gather.wizard.com
.



There is also another issue with your code :
The card should not trigger when i cast the copy but this is not true if another player use a card to cast copies.
As you wrote the card will not trigger if the spell is a copy. But the text just say if a card with the same name, so it doesn't say Non-Token card or not copied-Card.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby sumomole » 19 Dec 2013, 18:14

NeoAnderson wrote:Are you sure that simply using Target definition with items_count=2 and with Set Zone Graveyard the target will be picked from the same graveyard??
yes, but is count, not items_count.

NeoAnderson wrote:I know about May into Dotp 2014 but honestly i still don't understand how is supposed to work, does it automatically show a question? because into many cards i tried May condition seem simply skipped without letting you choose!
You should note that in two abilities I used different code for "may" effect, the second one has always_prompt="1", there is "always use optional abilities" in game settings, if it is turned on, "may" effect defaults to yes, that is the situation you encounter, if you add always_prompt="1", it will always prompt you.

NeoAnderson wrote:The card should not trigger when i cast the copy but this is not true if another player use a card to cast copies.
As you wrote the card will not trigger if the spell is a copy. But the text just say if a card with the same name, so it doesn't say Non-Token card or not copied-Card.
"Whenever a player casts a card", copy is not a card, you must distinguish between spell and card, just spell include copy.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby NeoAnderson » 19 Dec 2013, 18:25

sumomole wrote:
NeoAnderson wrote:Are you sure that simply using Target definition with items_count=2 and with Set Zone Graveyard the target will be picked from the same graveyard??
yes, but is count, not items_count.

NeoAnderson wrote:I know about May into Dotp 2014 but honestly i still don't understand how is supposed to work, does it automatically show a question? because into many cards i tried May condition seem simply skipped without letting you choose!
You should note that in two abilities I used different code for "may" effect, the second one has always_prompt="1", there is "always use optional abilities" in game settings, if it is turned on, "may" effect defaults to yes, that is the situation you encounter, if you add always_prompt="1", it will always prompt you.

NeoAnderson wrote:The card should not trigger when i cast the copy but this is not true if another player use a card to cast copies.
As you wrote the card will not trigger if the spell is a copy. But the text just say if a card with the same name, so it doesn't say Non-Token card or not copied-Card.
"Whenever a player casts a card", copy is not a card.
Thanks a lot for these explanations. Are really useful for me, as you can see i am not a programmer and this is my first Dotp Editing adventure :-)
I can confirm to you that your code works, i just tried it. Ok i can add this experience for future cards coding :-)

Just one last thing.
Could you try my Xenograft version i have made the function about name a creature type we talked last time. I would know what you think about it.
You can find it into these topic :-) I really would know what you think. Also you Mc Brodie, Riiak, and TheFireMind, check it and let me know if you think could be useful or not.


UPDATE : One thing Sumomole, I disabled "always use optional abilities" in game settings, now it works, thanks but, the card when enters into battlefield, ask the targets selection and when you made it, it asks if you want to use the ability.
It is a little bit weird :-), i also tried to move the May tag before of the target tag but it is the same. Targets are evaluated first.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 33 guests


Who is online

In total there are 33 users online :: 0 registered, 0 hidden and 33 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 33 guests

Login Form