Thoughts on Creating Specific New Cards
Mulldrifter:
- Start by creating the 2/2 flying creature for 4U.
- Add the cost reduction code (like affinity) to reduce its cost by 2.
- Add a comes into play ability. Part 1: draw 2 cards.
- Comes into play part 2: If 2 mana is available, show a dialog. (use code similar to Mox Diamond for this part)
- The dialog should have the options 'Pay 2' and 'Sacrifice this'.
- Like Mox Diamond, if 'sacrifice' was chosen, or the dialog was not shown, bury the card. Otherwise charge 2 mana.
- Voila, you have Mulldrifter with the appropriate mana cost!
The same can be done for Shiekmaw, Cloudthresher, etc.
Force of Will:
- Start by creating the card for 3UU
- Add the cost reduction code (like affinity) to reduce its cost by 3UU.
- Add code to the 'can this be played' event to check for either 3UU available or a blue card in hand.
- Inquisition checks the number of white cards a player has in hand, so that code could be modded to check for blue cards.
Preferably, though, the hand-checking code from brainstorm could be modified to check color instead of type.
- When the spell is played, give the user a dialog box if both choices are available, or just force one payment
if only 1 is available.
- Again use the brainstorm code to force the user to choose a blue card and RFG it. (and lose 1 life)
- Chain on counterspell. Done.
Hybrid:
- set mana cost to colorless costs, like they are now
This one's a little complicated so I'm going to write pseudocode. I envision that we would write a proc that would take these args and handle the rest: hybrid(cardId, player, event, hybridColor1, hybridColor2, hybridManaTotal, hybridText)
if( costReductionEvent){
cost -= colorless cost
}
if( canBePlayedEvent){
for i = 0..hybridMana{
isManaAvailable(colorless cost and i of hybridColor1 and hybridMana-i of hybridColor2)
if yes, spell can be played.
}
otherwise spell cannot be played
}
if( playingSpellPayingCosts ){
for i = 0..hybridMana{
if isManaAvailable(hybridColor1) and isManaAvailable(hybridColor2)
createDialog simple 2-part dialog using hybridText
if( 0 ) is chosen, charge hybridColor1
if( 1 ) is chosen, charge hybridColor2
}
elsif isManaAvailable(hybridColor1)
charge hybridColor1
elsif isManaAvailable(hybridColor2)
charge hybridColor2
}
}
}
Then chain on the regular spell.
