You can do it as alternate casting cost. For an example of a card with an alternate casting cost look at
Force of Will.
- Force of Will Alt Casting Cost | Open
- Code: Select all
<UTILITY_ABILITY qualifier="Alternate">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You may pay 1 life and exile a blue card from your hand rather than pay Force of Will’s mana cost.]]></LOCALISED_TEXT>
<COST type="Life" amount="1" />
<COST type="Exile" definition="0" compartment="1" query_tag="CARD_QUERY_CHOOSE_CARD_TO_EXILE" item_count="1" amount="1" />
<COST_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_HAND, EffectController() )
filter:Add( FE_COLOUR, OP_IS, COLOUR_BLUE)
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource())
</COST_DEFINITION>
<ABILITY_TEXT tag="CARD_QUERY_FORCE_OF_WILL_PAY_1_LIFE_AND_EXILE_BLUE_CARD" />
</UTILITY_ABILITY>
Now in your case you do not need the loss of 1 life or to exile a card. You can delete all of the cost blocks in the
Force of Will alternate casting cost and replace with a simple <COST mana_cost="{1}" type="Mana" />. Now you just have to make sure you can only use the ability from the exile zone. For that you'll need to set the active zone. See if this works.
- Cast from Exile | Open
- Code: Select all
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_EXILE">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}: Cast this card from exile.]]></LOCALISED_TEXT>
<COST mana_cost="{1}" type="Mana" />
</UTILITY_ABILITY>