public static void awardExp()
	{
		System.out.println("Experience Points Awarded");
		if(!BATTLE_TYPE.equals("WILD"))
			Mechanics.expYield*=1.8;

		int divisor=0;

		//Exp All
		if(Inventory.hasItem(new Item(Item.Type.EXPERIENCE_ALL,1)))
		{
			b1.addText("Experience All spread out all the experience!");

			for(int i=0; i<userNumOfPokemon; i++)
			{
				if(user[i].status!=Pokemon.Status.FNT)
				{
					Mechanics.participatedInBattle[i]=true;
				}
			}
		}
		//Fixes Exp Yield based on Pokemon that participated
		for(int i=0; i<userNumOfPokemon; i++)
		{
			if(Mechanics.participatedInBattle[i]&&user[i].health>0)
				divisor++;
		}

		if(divisor<1)
			divisor=1;

		Mechanics.expYield/=divisor;

		b1.addText("");

		//Actually awards Exp
		for(int i=0; i<userNumOfPokemon; i++)
		{
			if(Mechanics.participatedInBattle[i]&&user[i].health>0)
			{
				user[i].exp+=Mechanics.expYield;
				//Awards Effort Values
				user[i].HP_EV+=enemy[enemyIndex].baseHP;
				user[i].ATK_EV+=enemy[enemyIndex].baseATK;
				user[i].DEF_EV+=enemy[enemyIndex].baseDEF;
				user[i].SPCL_EV+=enemy[enemyIndex].baseSPCL;
				user[i].SPEED_EV+=enemy[enemyIndex].baseSPEED;

				if(user[i].HP_EV>256*256)
					user[i].HP_EV=256*256;
				if(user[i].ATK_EV>256*256)
					user[i].ATK_EV=256*256;
				if(user[i].DEF_EV>256*256)
					user[i].DEF_EV=256*256;
				if(user[i].SPCL_EV>256*256)
					user[i].SPCL_EV=256*256;
				if(user[i].SPEED_EV>256*256)
					user[i].SPEED_EV=256*256;

				if(user[i].IS_TRADED)
				{
					Mechanics.expYield*=1.5;
					b1.addText(user[i].nickname+" gained a boosted "+(int)Mechanics.expYield+" Exp. Points!");
					Mechanics.expYield/=1.5;
				}
				else
				b1.addText(user[i].nickname+" gained "+(int)Mechanics.expYield+" Exp. Points!");

				try
				{
					Thread.sleep(3000);
				}
				catch(Exception ignored){}

				checkLevel();
			}
		}
	}