public static int run_AI_SMART()
	{
		System.out.println("SMART AI Initiated");

		int bestMove=0;

		if(enemyLockedMove!=-1)
			return enemyLockedMove;

		for(int i=0; i<4; i++)
		{
			if(enemy[enemyIndex].move[i]!=Pokemon.Move.NONE&&i!=Mechanics.moveDisabled[1])
			{
				if(enemy[enemyIndex].move[i].mainEffect==Pokemon.Primary_Effect.DAMAGE&&
					Mechanics.typeMultiplier(enemy[enemyIndex].move[i].moveType,user[userIndex].type1,user[userIndex].type2)>=2)
				{
					System.out.println("Enemy sees opportunity for Super Effective hit with "+enemy[enemyIndex].move[i]+"!");
					if(enemy[enemyIndex].move[i]!=Pokemon.Move.DREAM_EATER)
					{
						bestMove=i;
						return bestMove;
					}
				}
				else if(user[userIndex].health<=user[userIndex].healthMax*.5&&
						enemy[enemyIndex].move[i].mainEffect==Pokemon.Primary_Effect.DAMAGE&&
						Mechanics.typeMultiplier(enemy[enemyIndex].move[i].moveType,user[userIndex].type1,user[userIndex].type2)>=1)
				{
					System.out.println("Enemy is going to try to faint the user!");
					bestMove=i;
					return bestMove;
				}
				else if(enemy[enemyIndex].health>=enemy[enemyIndex].healthMax*5&&
						enemy[enemyIndex].move[i].mainEffect!=Pokemon.Primary_Effect.DAMAGE)
				{
					System.out.println("Enemy is considering using a support move.");
					bestMove=i;
				}
			}
		}

		if(bestMove==0)
		{
			System.out.println("Enemy is shuffling for move choice.");

			bestMove=(int)(Math.random()*4);

			while((bestMove<0||bestMove>3)||enemy[enemyIndex].move[bestMove]==Pokemon.Move.NONE)
			{
				bestMove=(int)(Math.random()*4);

				if(bestMove>-1&&bestMove<4)
				{
					if(bestMove==Mechanics.moveDisabled[1])
						bestMove=5;
				}
			}

			System.out.println("Enemy chooses move index "+bestMove);
		}

		return bestMove;
	}