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 the actual cost, but use white mana as the hybrid symbol.

This one's a little complicated so I'm going to write pseudocode. I envision that we would write a proc that would handle EVERY hybrid card's mana cost with no additional coding.

generalSection (i.e. no event)
*hybridColor1 = color of card 1, determined by static color of card (see invasion apprentices)
*hybridColor2 = color of card 2
*hybridManaTotal = white mana required

if( costReductionEvent){
  cost = colorLessCost
}

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 ){
  hybridText = use an if..else to set this based on static color.  There should be only 10 choices, unless you also include cards   like spectral procession.  Even then, there are 15 choices (sorry reaper king)
  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.