private boolean evaluateCardPlayable(Card c) {
		// There are spells that have no cost, and those cannot be played for
		// their cost, seeing as they don't have one. Thus, despite not
		// implementing those cards for a while, there will be a special case
		// where I check to see if their cost is null.

		if (c.getCost().equals("0")) {
			return false;
		}

		// I've found that having the card's mana cost by itself is a desirable
		// thing, so I made a separate method for it.

		int[] manaCost = this.evaluateCardCost(c);

		// Here I check each of the five colors, and ensure that I have enough
		// mana open to pay for the colored costs.
		for (int i = 0; i < 5; i++) {
			if (this.manaOpen[i] < manaCost[i]) {
				return false;
			}
		}
		// This part is only reachable if all the colored costs can be payed.
		// Here it checks the colorless cost against avaliable colorless mana
		// and all left over colored mana.

		int remainingMana = 0;
		for (int i = 0; i < 5; i++) {
			remainingMana += (this.manaOpen[i] - manaCost[i]);
		}

		// Add in colorless mana and check total remaining mana against
		// colorless cost. Return false if mana insufficient, otherwise pass to
		// a default return true, which is the default because zero mana stuff
		// exists.
		remainingMana += this.manaOpen[5];
		if (remainingMana < manaCost[5]) {
			return false;
		}

		return true;
	}