Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks
2014
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks
2014
(Tejahn) Manifest Cards
Moderators: Xander9009, CCGHQ Admins
(Tejahn) Manifest Cards
by Tejahn » 24 Jan 2015, 23:44
I've been trying for days to implement this mechanic but I've been yet unsuccessful. Therefore, to speed up the release of Fate Reforged I'm asking anyone if they can create the 18 Manifest cards or if someone can provide the code. I've looked over NeoAnderson's Morph code extensivel but I'm still having trouble. Below I'll post his code and I'll also PM him to see if he's interested in creating the cards or providing the code. Again, anyone able to help, please do.
Here is the Morph code created by NeoAnderson:
- Code: Select all
<TRIGGERED_ABILITY replacement_query="1" active_zone="ZONE_ANY">
<TRIGGER value="BEGINNING_OF_STEP">
if MTG():GetStep() == STEP_UPKEEP then
local Chest_Id = Object():GetRef()
local chest = MTG():DuelDataChest():Get_Chest(Chest_Id)
if chest ~= nil then
return false
else
MTG():CreateDelayedTrigger(8, nil)
chest = MTG():DuelDataChest():Make_Chest(Chest_Id)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
MTG():PutTokensOntoBattlefield( "NEO_TEST_TOKEN_001_MORPH_2_2_570092001", 1, EffectController(), EffectDC():Make_Chest(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local chest = EffectDC():Get_Chest(0)
if chest ~= nil then
local token = chest:Get_NthCardPtr(0)
if token ~= nil then
local Chest_Id = Object():GetRef()
token:StoreCopiableValues(MTG():DuelDataChest():Make_Chest(Chest_Id))
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<STATIC_ABILITY active_zone="ZONE_ANY">
<CONTINUOUS_ACTION layer="1">
if Object() ~= nil then
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER, 0 )
if RSN_Characteristics_GetInt( Object(), NEO_CHARACTERISTIC_FACEDOWN ) == 1 then
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH, 0 )
else
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH, 1 )
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="1">
if Object() ~= nil then
if RSN_Characteristics_GetInt( Object(), NEO_CHARACTERISTIC_FACEDOWN ) == 1 then
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) ~= nil then
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 1 )
Object():GetCurrentCharacteristics():GrantAbility(10)
Object():GetCurrentCharacteristics():GrantAbility(12)
Object():GetCurrentCharacteristics():GrantAbility(13)
end
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Morph {2}{W}{B}{G} (|You may cast this face down as a 2/2 creature for | {3} |. Turn it face up any time for its morph cost.|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mue {2}{W}{B}{G} (Vous pouvez jouer cette carte face cachée comme une créature 2/2 pour {3}. Retournez-la quand vous le désirez pour son coût de mue.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Metamorfosis {2}{W}{B}{G}. (Puedes jugar esta carta boca abajo como una criatura 2/2 pagando {3}. Ponla boca arriba en cualquier momento pagando su coste de metamorfosis.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Morph {2}{W}{B}{G} (Du kannst diese Karte verdeckt für {3} als eine 2/2 Kreatur spielen. Decke sie zu einem beliebigen Zeitpunkt für ihre Morph-Kosten auf.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Metamorfosi {2}{W}{B}{G} (|puoi giocare questa carta a faccia in giù come una creatura 2/2 pagando | {3} |. Girala a faccia in su in qualsiasi momento pagando il suo costo di metamorfosi.|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[変異{2}{W}{B}{G}(あなたはこのカードを、{3}を支払うことで2/2クリーチャーとして裏向きに唱えてもよい。これの変異コストを支払うことで、これをいつでも表向きにしてよい。)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[모프 {2}{W}{B}{G} (| 당신이 2/2 생물로이 얼굴을 아래로 캐스팅 할 수 있습니다 | {3} |. 그것 모프 비용에 대한 시간을 얼굴을 돌립니다. |]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Оборотень {2}{W}{B}{G} (|Вы можете играть эту карту лицом вниз как существо 2/2 за| {3} |. Переверните ее лицом вверх в любой момент за ее стоимость Оборотня.|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Metamorfose {2}{W}{B}{G} (|Você pode baixar este card com a face voltada para baixo como uma criatura 2/2 por| {3} |. Volte sua face para cima a qualquer momento pagando seu custo de metamorfose.)]]></LOCALISED_TEXT>
<ABILITY_TEXT tag="MODE_CAST_MORPH_FACE_DOWN_PAY_3" />
<COST type="Generic">
<PREREQUISITE>
if Object():GetZone() ~= ZONE_HAND and Object():GetErstwhileZone() ~= 5 then
local UpdatedCost = UpdateFaceDownCastingCost(EffectController())
local FaceDownStringCost = "{"..UpdatedCost.."}"
if EffectController():CanCastSpellForFree(Object()) and EffectController():CanPayManaCost(FaceDownStringCost) then
return true
else
return false
end
end
</PREREQUISITE>
<PLAY_TIME_ACTION>
local UpdatedCost = UpdateFaceDownCastingCost(EffectController())
local FaceDownStringCost = "{"..UpdatedCost.."}"
EffectController():PayManaCost(FaceDownStringCost)
MTG():CreateDelayedTrigger(7, nil)
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) == nil then
MTG():CreateDelayedTrigger(8, nil)
end
local delayDC = EffectDC():Make_Chest(0)
delayDC:Set_Int(0, Chest_Id)
MTG():CreateDelayedTrigger(9, delayDC)
local characteristics = Object():GetCurrentCharacteristics()
local card_type = characteristics:CardType_GetWritable()
local sub_type = characteristics:SubType_GetWritable()
sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
Object():GetCurrentCharacteristics():Colour_Get():Clear()
</PLAY_TIME_ACTION>
</COST>
</UTILITY_ABILITY>
<TRIGGERED_ABILITY resource_id="7" replacement_query="1" priority="20">
<TRIGGER value="STATE_BASED_EFFECTS" pre_trigger="1" />
<CLEANUP fire_once="1" />
<PLAY_TIME_ACTION>
if Object() ~= nil then
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) == nil then
MTG():PutTokensOntoBattlefield( "NEO_TEST_TOKEN_001_MORPH_2_2_570092001", 1, EffectController(), EffectDC():Make_Chest(0) )
else
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
end
end
</PLAY_TIME_ACTION>
<PLAY_TIME_ACTION>
if Object() ~= nil then
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) == nil then
local token_chest = EffectDC():Get_Chest(0)
if token_chest ~= nil then
local token = token_chest:Get_NthCardPtr(0)
if token ~= nil then
token:StoreCopiableValues(MTG():DuelDataChest():Make_Chest(Chest_Id))
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
end
end
end
end
</PLAY_TIME_ACTION>
<CONTINUOUS_ACTION layer="1">
if Object() ~= nil then
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) ~= nil then
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 1 )
Object():GetCurrentCharacteristics():GrantAbility(10)
Object():GetCurrentCharacteristics():GrantAbility(12)
Object():GetCurrentCharacteristics():GrantAbility(13)
end
end
</CONTINUOUS_ACTION>
<DURATION>
return RSN_Characteristics_GetInt( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER ) == 1
</DURATION>
</TRIGGERED_ABILITY>
<UTILITY_ABILITY resource_id="40">
<ABILITY_TEXT tag="MODE_CAST_MORPH_FACE_DOWN_PAY_3" />
<COST type="Generic">
<PREREQUISITE>
local UpdatedCost = UpdateFaceDownCastingCost(EffectController())
local FaceDownStringCost = "{"..UpdatedCost.."}"
return EffectController():CanPayManaCost(FaceDownStringCost)
</PREREQUISITE>
<PLAY_TIME_ACTION>
local UpdatedCost = UpdateFaceDownCastingCost(EffectController())
local FaceDownStringCost = "{"..UpdatedCost.."}"
EffectController():PayManaCost(FaceDownStringCost)
</PLAY_TIME_ACTION>
</COST>
</UTILITY_ABILITY>
<ACTIVATED_ABILITY forced_skip="1" active_zone="ZONE_HAND">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Cast this face down.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Jouer cette carte face cachée.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Jugar esta carta boca abajo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spiele diese Karte verdeckt.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Gioca questa carta a faccia in giù.]]></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[Jogue esta carta virada para baixo]]></LOCALISED_TEXT>
<COST mana_cost="{0}" type="Mana" />
<AVAILABILITY>
local UpdatedCost = FakeFaceDownCastingCost(EffectController())
local FaceDownStringCost = "{"..UpdatedCost.."}"
return EffectController():CanPayManaCost(FaceDownStringCost)
</AVAILABILITY>
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if Object() ~= nil then
local Chest_Id = Object():GetRef()
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_Int(0, Chest_Id)
MTG():CreateDelayedTrigger(9, delayDC)
if MTG():DuelDataChest():Get_Chest(Chest_Id) == nil then
MTG():CreateDelayedTrigger(8, nil)
MTG():PutTokensOntoBattlefield( "NEO_TEST_TOKEN_001_MORPH_2_2_570092001", 1, EffectController(), EffectDC():Make_Chest(0) )
else
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if Object() ~= nil then
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) == nil then
local token_chest = EffectDC():Get_Chest(0)
if token_chest ~= nil then
local token = token_chest:Get_NthCardPtr(0)
if token ~= nil then
token:StoreCopiableValues(MTG():DuelDataChest():Make_Chest(Chest_Id))
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if Object() ~= nil then
MTG():CreateDelayedTrigger(17, nil)
end
</RESOLUTION_TIME_ACTION>
<CONTINUOUS_ACTION layer="1">
if Object() ~= nil then
local Chest_Id = Object():GetRef()
if MTG():DuelDataChest():Get_Chest(Chest_Id) ~= nil then
Object():UseCopiableValues(MTG():DuelDataChest():Get_Chest(Chest_Id))
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 1 )
Object():GetCurrentCharacteristics():GrantAbility(10)
Object():GetCurrentCharacteristics():GrantAbility(12)
Object():GetCurrentCharacteristics():GrantAbility(13)
end
end
</CONTINUOUS_ACTION>
<DURATION>
return RSN_Characteristics_GetInt( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER ) == 1
</DURATION>
<RESOLUTION_TIME_ACTION>
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="17" replacement_query="1">
<TRIGGER value="STATE_BASED_EFFECTS" pre_trigger="1" />
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
MTG():ReevaluateContinuousEffects()
</RESOLUTION_TIME_ACTION>
<PLAY_TIME_ACTION>
local UpdatedCost = FakeFaceDownCastingCost(EffectController())
local FaceDownStringCost = "{"..UpdatedCost.."}"
local value = 0
if EffectSource():CanBePlayed(EffectController()) == true or EffectController():CanCastSpellUsingResourceCost( EffectSource(), 40 ) == true then
if EffectController():MyTurn() == true then
if MTG():GetStep() == STEP_MAIN_1 or MTG():GetStep() == STEP_MAIN_2 then
if CheckThisCreatureForCharacteristic(CHARACTERISTIC_FLASH, EffectSource()) == 1 or CheckCardGrantFlashControlledBy(EffectController()) == 1 or CheckCardGrantFlashControlledByOthers(EffectController()) == 1 then
value = 1
else
if CheckStackIsFree() == 0 then
value = 1
end
end
else
if CheckThisCreatureForCharacteristic(CHARACTERISTIC_FLASH, EffectSource()) == 1 or CheckCardGrantFlashControlledBy(EffectController()) == 1 or CheckCardGrantFlashControlledByOthers(EffectController()) == 1 then
value = 1
end
end
elseif CheckThisCreatureForCharacteristic(CHARACTERISTIC_FLASH, EffectSource()) == 1 or CheckCardGrantFlashControlledBy(EffectController()) == 1 or CheckCardGrantFlashControlledByOthers(EffectController()) == 1 then
value = 1
end
end
local EtherswornCanonist = FakeEtherswornCanonistCheck(EffectController())
local OvverideCreatureCast = CheckCardOverrideCreatureCastControlledBy(EffectController())
if (CheckCardOverrideCreatureCastControlledByAny() == 1) or (EtherswornCanonist == 1) or (OvverideCreatureCast == 1) then
value = 0
end
EffectDC():Set_Int(8, value)
if value == 1 then
EffectController():BeginNewMultipleChoice()
EffectController():AddMultipleChoiceAnswer( "MODE_CAST_MORPH_FACE_DOWN_PAY_3", EffectController():CanPayManaCost(FaceDownStringCost))
EffectController():AddMultipleChoiceAnswer( "CARD_QUERY__NEO_OPTION_DO_NOTHING" )
EffectController():AskMultipleChoiceQuestion( "MODE_MORPH_INFO_CARD" )
end
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local valueA = EffectDC():Get_Int(8)
if valueA == 1 then
local value = EffectController():GetMultipleChoiceResult()
if value == 0 then
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 1 )
if EffectController():CanCastSpellUsingResourceCost( EffectSource(), 40 ) then
EffectController():CastSpellUsingResourceCost( EffectSource(), 40 )
end
else
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER, 1 )
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 0 )
end
else
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER, 1 )
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 0 )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="8" replacement_effect="1" active_zone="ZONE_ANY" priority="-1">
<TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1">
if TriggerObject() ~= nil and TriggerObject():GetCardName() == "" then
if TriggerObject():GetErstwhileZone() == 0 then
MTG():OverrideEvent()
return true
end
end
return false
</TRIGGER>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="9" replacement_effect="1" active_zone="ZONE_ANY" priority="-1">
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD">
if TriggerObject() ~= nil and RSN_Characteristics_GetInt( Object(), NEO_CHARACTERISTIC_FACEDOWN ) == 1 then
local oDC = RSN_GetObjectDC( Object(), true )
local value = EffectDC():Get_Int(0)
oDC:Int_Set( 585, value )
return true
end
return false
</TRIGGER>
<CLEANUP fire_once="1" />
</TRIGGERED_ABILITY>
<ACTIVATED_ABILITY resource_id="10" forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Morph (|View hidden info of the card|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mue (|Voir les informations cachées de la carte|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Metamorfosis -(|Ver la informacion oculta de la carta|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Morph (|Ausgeblendete Informationen der Karte zeigen|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Metamorfosi (|Visualizza info nascoste della carta|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Morph (カードの隠された情報を見る)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Morph (카드의 숨겨진 정보를보기)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Morph (|Посмотреть скрытую информацию карты|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Metamorfose (|Ver informação oculta do cartão|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[Morph (變身(|卡片視圖中隱藏信息|)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[Morph (變身(|卡片視圖中隱藏信息|)]]></LOCALISED_TEXT>
<COST mana_cost="{0}" type="Mana" />
<AVAILABILITY>
local oDC = RSN_GetObjectDC( Object(), false )
if oDC ~= nil then
local value = oDC:Int_Get(585)
if value ~= 0 then
return true
end
end
return false
</AVAILABILITY>
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
<PLAY_TIME_ACTION>
local oDC = RSN_GetObjectDC( Object(), false )
if oDC ~= nil then
local value = oDC:Int_Get(585)
if value < 0 then
value = (-value)
end
local QueryString = "CARD_QUERY_MORPH_"..value
local MorphCost = BuildUpdatedMorphCost(2, 1, 0, 1, 0, 1)
EffectController():BeginNewMultipleChoice()
EffectController():AddMultipleChoiceAnswer( QueryString, EffectController():CanPayManaCost(MorphCost) )
EffectController():AddMultipleChoiceAnswer( "CARD_QUERY__NEO_OPTION_DO_NOTHING" )
EffectController():AskMultipleChoiceQuestion( "MODE_MORPH_INFO_CARD", Object() )
end
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local oDC = RSN_GetObjectDC( Object(), false )
if oDC ~= nil then
local value = EffectController():GetMultipleChoiceResult()
if value == 0 then
local MorphCost = BuildUpdatedMorphCost(2, 1, 0, 1, 0, 1)
EffectController():PayManaCost(MorphCost)
NeoTurnFaceUP( Object() )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY type="in_response" />
<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="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="declare_blockers" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" type="window" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="12" replacement_effect="1">
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
return true
</TRIGGER>
<RESOLUTION_TIME_ACTION>
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER, 1 )
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 0 )
MTG():ReevaluateContinuousEffects()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="13" replacement_effect="1" active_zone="ZONE_STACK">
<TRIGGER value="SPELL_BEING_COUNTERED" simple_qualifier="self" pre_trigger="1" />
<RESOLUTION_TIME_ACTION>
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_MORPH_TRIGGER, 1 )
RSN_Characteristics_Set( Object(), NEO_CHARACTERISTIC_FACEDOWN, 0 )
MTG():ReevaluateContinuousEffects()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="NEO_TEST_TOKEN_001_MORPH_2_2_570092001" />
Re: (Tejahn) Manifest Cards
by Xander9009 » 25 Jan 2015, 03:52
Morph works by replacing the card with a completely different card, but tracking which one created it (more or less). The real issue here is that the Morph code Neo created wouldn't be able to display the other creature. See, it displays the information by using a localized text string, and those are hard coded. Unless you made a localized string for every single creature card, this wouldn't work.
Hopefully Neo can help, because the code for Morph is necessarily very complicated, and I'm pretty sure he's the only one that knows what's going on. For the information about the face-up creature, would it be possible to get the information about the face-up creature? It wouldn't be able to show the abilities, but showing the name and type as well as power and toughness if it's a creature would make the card usable.
Hopefully Neo can help, because the code for Morph is necessarily very complicated, and I'm pretty sure he's the only one that knows what's going on. For the information about the face-up creature, would it be possible to get the information about the face-up creature? It wouldn't be able to show the abilities, but showing the name and type as well as power and toughness if it's a creature would make the card usable.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 444 times
Re: (Tejahn) Manifest Cards
by Tejahn » 25 Jan 2015, 04:51
I agree. I've tried different approaches to no avail. Hopefully, someone will come along and help us out.
Re: (Tejahn) Manifest Cards
by Tejahn » 17 Feb 2015, 01:07
Xander9009 wrote:Would you mind sending me your manifest code? It's a rather complex ability and we'd be WAY better off not having multiple versions.
I just posted the above video of what I have for the Manifest mechanic. It is totally incomplete. As it stands now, I'm using Lightform to test it. The card only exiles the top card of your library face down in the Exile Zone and places that card on the battlefield at the beginning of the end step. Again, this was for testing purposes to make the card lay face down. I didn't even add the 'As a 2/2 creature' part because I'm not sure it will become such since it is place directly in exile. Do you think Riiak can help us code it? I tried following Neo's code with no success. I suppose I'll just have to release the set without Manifest included if no one can help. I feel that this is not a good reason to keep delaying the release of the set.
EDIT: I've uploaded the video to YouTube but it hasn't processed yet. I've included a .ZIP so you can view the video until I can embed it here.
Here is the code that places it face down in exile.
- Code: Select all
<RESOLUTION_TIME_ACTION>
local top_card = EffectController():Library_GetTop()
if top_card ~= nil then
EffectDC():Set_CardPtr(0, top_card)
EffectDC():Protect_CardPtr(0)
top_card:ExileFaceDown()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local exiled_card = EffectDC():Get_CardPtr(0)
if exiled_card ~= nil then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, exiled_card)
MTG():CreateDelayedTrigger(2, delayDC)
end
</RESOLUTION_TIME_ACTION>
- Code: Select all
<TRIGGERED_ABILITY resource_id="2">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
return TriggerPlayer() == EffectController() and MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
local exiled_card = EffectDC():Get_CardPtr(0)
if exiled_card ~= nil then
EffectDC():Protect_CardPtr(0)
exiled_card:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local exiled_card = EffectDC():Get_CardPtr(0)
if exiled_card ~= nil then
exiled_card:TurnFaceUp()
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP>
return EffectDC():Get_CardPtr(0) == nil
</AUTO_SKIP>
</TRIGGERED_ABILITY>
- Attachments
-
Manifest mechanic video.rar- Manifest Mechanic - Top card exiled face down in the Exile Zone.
- (8.72 MiB) Downloaded 197 times
Last edited by Tejahn on 23 Feb 2015, 20:36, edited 3 times in total.
Re: (Tejahn) Manifest Cards
by RiiakShiNal » 17 Feb 2015, 12:00
I'm afraid I likely won't be able to help here. There are just too many problems with face down cards (because there is no engine support for it).
Also due to power outages in my area last night, one of my important systems has gone down and refuses to come back up (even though it was shutdown properly). So that is going to absorb most of my time outside of work until I can get it back up and running.
Also due to power outages in my area last night, one of my important systems has gone down and refuses to come back up (even though it was shutdown properly). So that is going to absorb most of my time outside of work until I can get it back up and running.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2160
- Joined: 16 May 2011, 21:37
- Has thanked: 74 times
- Been thanked: 483 times
Re: (Tejahn) Manifest Cards
by Tejahn » 17 Feb 2015, 17:03
I understand. Thanks for responding. Those may have to come in a future update.
Re: (Tejahn) Manifest Cards
by Xander9009 » 17 Feb 2015, 17:15
Dang, that sucks about your system
Hopefully you can get it resolved soon.
As for the file, I can't play the video. So I guess I'll have to wait for the youtube version. Although, I already understand what you mean, based on looking at the code.
However, I don't think exiling the card face down is a good solution. The only way that is likely to produce workable results is to mirror Neo's morph. The morph code is all his, but I went through it when I converted the morph cards to work with the CW to figure out why the ability text wasn't working (now I know why, but it's a VERY tedious process to fix
), and I now understand relatively well what's going on there.It's certainly not a simple process, but it is at least fairly straight-forward if I remember right.
It certainly won't be perfectly accurate, but it should at least be an almost-as-close approximation as morph (it needs a different method of showing info about the face-up card, the morph cards are all hard-coded). For that part, I'm considering using a two-part system. Using either a GuidedReveal() (if that can reveal to a single player) or a choice (if it can't) which shows the player another copy of the card from their library hand or graveyard if it finds one, and then pulling just the name, power, toughness, types, subtypes, and some close approximation of cost.
As far as cost goes, is there a way to get the actual mana cost of a card so the player could PayManaCost()? Y'know, thinking about it, I really wish the developers had simply added an attribute usable in the ability tags for immutable: an ability which cannot be removed. That would make manual mana and this radical solution I've got in mind so much easier.
I would definitely go ahead and release the set once you've got everything else done. They can always be added later.
As for the file, I can't play the video. So I guess I'll have to wait for the youtube version. Although, I already understand what you mean, based on looking at the code.
However, I don't think exiling the card face down is a good solution. The only way that is likely to produce workable results is to mirror Neo's morph. The morph code is all his, but I went through it when I converted the morph cards to work with the CW to figure out why the ability text wasn't working (now I know why, but it's a VERY tedious process to fix
It certainly won't be perfectly accurate, but it should at least be an almost-as-close approximation as morph (it needs a different method of showing info about the face-up card, the morph cards are all hard-coded). For that part, I'm considering using a two-part system. Using either a GuidedReveal() (if that can reveal to a single player) or a choice (if it can't) which shows the player another copy of the card from their library hand or graveyard if it finds one, and then pulling just the name, power, toughness, types, subtypes, and some close approximation of cost.
As far as cost goes, is there a way to get the actual mana cost of a card so the player could PayManaCost()? Y'know, thinking about it, I really wish the developers had simply added an attribute usable in the ability tags for immutable: an ability which cannot be removed. That would make manual mana and this radical solution I've got in mind so much easier.
I would definitely go ahead and release the set once you've got everything else done. They can always be added later.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 444 times
Re: (Tejahn) Manifest Cards
by Kithkin » 17 Feb 2015, 18:45
That seems to be a good idea. Looking at the TOP 8 decks from the last Starcitygames.com tournament, there is not a single Manifest card. Just saying.Xander9009 wrote:I would definitely go ahead and release the set once you've got everything else done. They can always be added later.
-

Kithkin - Posts: 456
- Joined: 21 Feb 2014, 07:12
- Location: Cologne, GERMANY
- Has thanked: 11 times
- Been thanked: 56 times
Re: (Tejahn) Manifest Cards
by Tejahn » 17 Feb 2015, 22:18
Xander9009, those are awesome ideas. I hope you can create a good approximation. And I agree with you and Kithkin that Manifest can be released later, if at all. The time to release the set is here. I'll be sending you the CORE so you can examine the codes one final time.
Re: (Tejahn) Manifest Cards
by RiiakShiNal » 18 Feb 2015, 12:11
I managed to get my system up. Apparently, the problem is that on system startup (and only on system startup) the USB 3.0 hub (which has its own power adapter) I have on the system pulls too much power and not enough is given to motherboard/processor. So if I unplug the USB on startup the computer comes up just fine, then I can plug the USB hub back in. So later I'll probably have to look into getting a better power supply, but for now things are working.Xander9009 wrote:Dang, that sucks about your systemHopefully you can get it resolved soon.
Unfortunately, you can't get the exact mana cost in all situations, but in most situations you can get pretty close.Xander9009 wrote:As far as cost goes, is there a way to get the actual mana cost of a card so the player could PayManaCost()? Y'know, thinking about it, I really wish the developers had simply added an attribute usable in the ability tags for immutable: an ability which cannot be removed. That would make manual mana and this radical solution I've got in mind so much easier.
First you start with the CMC as this tells you the max mana to use for the card. Then you get the Chroma count (using a filter) for the card's colourless mana and subtract that from the max to get the max coloured count (won't work right for cards like Spectral Procession, though this could be detected by also checking the coloured chroma count and noticing that white would be 3 even though the max should be 0 based on the math at which point you can deduce it uses 3 {2/W} symbols). Then you ask for the chroma counts for each of the 5 colours and based on the responses there you can most of the time get the appropriate mana cost (including hybrid mana, excluding phyrexian mana). This also will not cover certain cards that have a mix of hybrid mana types or a mix of hybrid colours and regular colours like Arsenal Thresher (as there is no way to determine which colours are used for the hybrid mana and which is regular).
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2160
- Joined: 16 May 2011, 21:37
- Has thanked: 74 times
- Been thanked: 483 times
Re: (Tejahn) Manifest Cards
by Tejahn » 18 Feb 2015, 16:51
Thanks for that information RiiakShiNal. I needed to know that for an unrelated project. I was actually about to ask a similar question in my Question Thread.
Re: (Tejahn) Manifest Cards
by Tejahn » 23 Feb 2015, 19:24
The video is up top. It's just to show that cards can be placed face-down in the Exile Zone. I didn't realize that I recorded the first 30 or more seconds of it.
My question is, by changing the zone from Exile to battlefield will it still work. I'll try it after I submit the blue Fate Reforged core over to Xander9009.
My question is, by changing the zone from Exile to battlefield will it still work. I'll try it after I submit the blue Fate Reforged core over to Xander9009.
Re: (Tejahn) Manifest Cards
by Xander9009 » 15 Mar 2015, 16:42
I have some great news, but unfortunately, that news is not yet that it's 100% working. Rather, it's that it's 99% working.
- Will manifest regardless of whether or not the card is a permanent (the game is not a fan of putting instants and sorceries onto the battlefield)
- You can't see what card it is before it hits the battlefield. Thanks to the fact that the ability isn't on the manifested card (unlike morph), it never goes to the stack, so that wasn't a problem, thankfully.
- It's also got the ability to turn face up, and it successfully shows the cost, name, types, subtypes, power, and toughness for any card.
- The Morph code was meant to morph one card (the one it was on), so it had to be modified to support being cast multiple times and manifesting a different card each time. This works.
- Attachments
-
DATA_DLC_MANIFEST.zip- This is a directory wad so you can more easily open it up and see the code. Drop the top folder in your game folder and it should work. Hopefully...
- (214.31 KiB) Downloaded 185 times
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 444 times
Re: (Tejahn) Manifest Cards
by Tejahn » 15 Mar 2015, 16:58
Great! I'm about to test this and Soulflayer. Once this is 100% working, all that's left is Wild Slash. The mod will be 100% complete. Thanks Xander9009!
Re: (Tejahn) Manifest Cards
by Xander9009 » 15 Mar 2015, 17:41
Speaking of Soulflayer, I've got the exact list of files necessary for Delve to work.
Cards:
Functions:
With those files (plus RSN_DEFENDING_PLAYER, RSN_DURATION, Favor of the Gods (my test card)) the delve ability worked and the card had the proper abilities. This was on a completely clean installation with NO other mods (not even the full manual mana wad). Just a new test deck with some vanilla creatures and the deck builder custom folder with those files.
Wild Slash may or may not work. Now that Manifest is done (hopefully), I'll see about getting it to work. I doubt it will be fully possible to do, though.
Cards:
- _MANAGER_ABILITIES_ACTIVE
- _MANAGER_CHARACTERISTICS
- RSN_TOKEN_MANA_C
Functions:
- D14_NEO_MANA_COST_FUNCTIONS
- RSN_FAKE_CHARACTERISTICS
- RSN_MANA
- RSN_OBJECTDC
With those files (plus RSN_DEFENDING_PLAYER, RSN_DURATION, Favor of the Gods (my test card)) the delve ability worked and the card had the proper abilities. This was on a completely clean installation with NO other mods (not even the full manual mana wad). Just a new test deck with some vanilla creatures and the deck builder custom folder with those files.
Wild Slash may or may not work. Now that Manifest is done (hopefully), I'll see about getting it to work. I doubt it will be fully possible to do, though.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-

Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 444 times
64 posts
• Page 1 of 5 • 1, 2, 3, 4, 5
Who is online
Users browsing this forum: No registered users and 10 guests
