private static void battle() throws Exception
	{
		Random generator = new Random();
		Scanner input = new Scanner(System.in);

		int cpuHealth = enemyHealth[enemyNumber];
		int cpuAttack = enemyAttack[enemyNumber];
		int cpuDefense = enemyDefense[enemyNumber];
		int cpuMagic = enemyMagic[enemyNumber];


		int fleshDamage = 0;
		int hitPower = 0;



		while(userSelection.equals("A"))
		{
			hitPower = generator.nextInt(attack);
			fleshDamage = 0;

			if(hitPower > (attack - 3))
			{	//MAGIC SPELL IS CAST
				hitPower = magic;
				currentMessage = "You cast a spell of magic on the " + enemy[enemyNumber] + ".";
				printMessage(currentMessage);
			}

			if(health <= 0)
			{	//PLAYER IS DEAD
				break;
			}

			if(hitPower > cpuDefense)
			{	//HIT CAUSES FLESH DAMAGE
				cpuDefense = 0;
				fleshDamage = hitPower - cpuDefense;
				cpuHealth = cpuHealth - fleshDamage;
				currentMessage = "The " + enemy[enemyNumber] + "'s defenses are down! You struck him for " + fleshDamage + " flesh damage.";
				printMessage(currentMessage);
			}
			else
			{ //IF PLAYER DOES NO FLESH DAMAGE (I.E. 0 hitPower OR DAMAGE ABSORBED)
				if(hitPower == 0)
				{
					currentMessage = "The " + enemy[enemyNumber] + " blocked your attack";
					printMessage(currentMessage);
				}
				else
				{
					cpuDefense = cpuDefense - hitPower;
					currentMessage = "You have weakend the " + enemy[enemyNumber] + "'s defenses by " + hitPower + ".";
					printMessage(currentMessage);
				}
			}

			if(cpuHealth <= 0)
			{	//CPU DEAD
				currentMessage = "You have slain the " + enemy[enemyNumber];
				printMessage(currentMessage);
				killConfirmed = true;
				break;
			}
			else
			{	//CPU RETALIATION
				hitPower = generator.nextInt(cpuAttack);
				fleshDamage = 0;

				if(hitPower > defense)
				{
					defense = 0;
					fleshDamage = hitPower - defense;
					health = health - fleshDamage;
					currentMessage = "Your defenses are down! The " + enemy[enemyNumber] + " struck you for " + fleshDamage + " flesh damage.";
					printMessage(currentMessage);
				}
				else
				{
					if(hitPower == 0)
					{
						currentMessage = "You've blocked the " + enemy[enemyNumber] + "'s attack";
						printMessage(currentMessage);
					}
					else
					{
						defense = defense - hitPower;
						currentMessage = "The " + enemy[enemyNumber] + " has weakened your defenses by " + hitPower + ". You have " + defense + " armor left.";
						printMessage(currentMessage);
					}
				}
			}

			userSelection = "";
			//BREAKS LOOP IF DEAD
			if(health <= 0)
			{
				break;
			}

			while(!userSelection.equals("A") && !userSelection.equals("R"))
			{
				currentMessage = "You have " + health + " health left. Would you like to continue (A)ttacking or (R)un away?\n";
				printMessage(currentMessage);
				System.out.print(playerName + ": ");
				userSelection = input.next();
				userSelection = userSelection.toUpperCase();
			}

			if(userSelection.equals("R"))
			{
				generated = generator.nextInt((20 / sneak));
				if(generated == 0)
				{
					currentMessage = "You have escaped the clutches of the " + enemy[enemyNumber] + ".";
					printMessage(currentMessage);
					escapeAchieved = true;
				}
				else
				{
					currentMessage = "The " + enemy[enemyNumber] + " prevented you from escaping.";
					printMessage(currentMessage);
					userSelection = "A";
				}
			}

		}
	}