Log in

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.