public static void postAttackInfo(int userOfMove)
	{
		switch(userOfMove)
		{
			case 0:
				switch(user[userIndex].move[userCmd].mainEffect)
				{
					case DAMAGE:
						if(!nonPostingCase[0]&&hasPP)
						{
							if(!Mechanics.awayFromBattle[0]&&hit&&Mechanics.damage>0||user[userIndex].move[userCmd].sideEffect==Pokemon.Side_Effect.FIXED_DAMAGE)
							{
								enemyHit.play();
								b1.setFlicker(1);
							}

							boolean fixed=false;

							switch(user[userIndex].move[userCmd].sideEffect)
							{
								case FIXED_DAMAGE:
									crit=false;
									fixed=true;
								case FAINT:
								case SWIFT:
								case HIGH_CRIT:
								case OHKO:
								case QUICK_ATTACK:
								case NONE:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										if(!fixed)
										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(user[userIndex].move[userCmd].sideEffect==Pokemon.Side_Effect.OHKO&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("It's a One-Hit-KO!");

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case ABSORB:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}
										b1.addText("Absorbed health from "+"Enemy "+enemy[enemyIndex].nickname+"!");
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case STAT:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}

										if(sideHit)
										{
											decStat.play();
											switch(user[userIndex].move[userCmd])
											{
												case ACID:
													b1.addText("The enemy's Defense fell!");
													break;
												case BUBBLE:
												case BUBBLEBEAM:
												case CONSTRICT:
													b1.addText("The enemy's Speed fell!");
													break;
												case PSYCHIC:
													b1.addText("The enemy's Special fell!");
													break;
											}
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case STATUS:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}

										if(sideHit)
										{
											switch(user[userIndex].move[userCmd])
											{
												case AURORA_BEAM:
												case BLIZZARD:
												case ICE_BEAM:
												case ICE_PUNCH:
													b1.addText("The enemy is frozen solid!");
													frz.play();
													break;
												case BODY_SLAM:
												case LICK:
												case THUNDER:
												case THUNDERPUNCH:
												case THUNDERBOLT:
												case THUNDERSHOCK:
													b1.addText("The enemy is paralyzed! It may not attack!");
													par.play();
													break;
												case EMBER:
												case FIRE_BLAST:
												case FIRE_PUNCH:
												case FLAMETHROWER:
													b1.addText("The enemy was burned!");
													brn.play();
													break;
												case POISON_STING:
												case SLUDGE:
												case SMOG:
													b1.addText("The enemy was poisoned!");
													psn.play();
													break;
											}
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case SUBSTATUS:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}

										if(sideHit)
										{
											switch(user[userIndex].move[userCmd])
											{
												case BITE:
												case BONE_CLUB:
												case HEADBUTT:
												case HYPER_FANG:
												case ROLLING_KICK:
													b1.addText("The enemy flinched!");
													break;
												case CONFUSION:
												case PSYBEAM:
													b1.addText("The enemy became confused!");
													break;
											}
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case CHARGE:
									switch(user[userIndex].move[userCmd])
									{
										case RAZOR_WIND:
										case SKY_ATTACK:
										case SKULL_BASH:
										case SOLARBEAM:
											if(Mechanics.charging[0])
											{
												b1.addText(user[userIndex].nickname+" is charging!");
											}
											else
											{
												b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);

												if(hit)
												{
													if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
														b1.addText("Critical Hit!");

													b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
													enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

													if(Mechanics.hasSubstitute[1])
													{
														b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
														checkSubstitute(1);
													}
												}
												else
												{
													b1.addText("The Attack Missed!");
												}
											}
											break;
										case HYPER_BEAM:
											if(Mechanics.charging[0])
											{
												b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);

												if(hit)
												{
													if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
														b1.addText("Critical Hit!");

													b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
													enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

													if(Mechanics.hasSubstitute[1])
													{
														b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
														checkSubstitute(1);
													}
												}
												else
												{
													b1.addText("The Attack Missed!");
												}
											}
											else
											{
												b1.addText(user[userIndex].nickname+" has to recharge!");
											}
											break;
									}
									break;
								case RECOIL:
									if(user[userIndex].move[userCmd]!=Pokemon.Move.NONE)
										b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									else
										b1.addText(user[userIndex].nickname+" used STRUGGLE");

									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(Mechanics.damage>0&&Mechanics.effective!=Mechanics.Effective.NONE)
										b1.addText(user[userIndex].nickname+" was hit with recoil!");

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case COLLECT_DAMAGE:
									switch(user[userIndex].move[userCmd])
									{
										case BIDE:
											if(Mechanics.turnsMultiTurn[0]==0)
											{
												b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
												if(hit)
												{
													if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
														b1.addText("Critical Hit!");

													b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
													enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

													if(Mechanics.hasSubstitute[1])
													{
														b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
														checkSubstitute(1);
													}
												}
												else
												{
													b1.addText("The Attack Missed!");
												}
											}
											else
											{
												b1.addText(user[userIndex].nickname+" is biding its time!");
											}
											break;
										case COUNTER:
											b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
											if(hit&&Mechanics.storedDamage[0]>0)
											{
												if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
													b1.addText("Critical Hit!");

												b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
												enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

												if(Mechanics.hasSubstitute[1])
												{
													b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
													checkSubstitute(1);
												}
											}
											else
											{
												b1.addText("The Attack Missed!");
											}
											break;
									}
									break;
								case MULTI_HIT:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));
										if(Mechanics.damage>0)
										b1.addText("Hit "+timesHit+" times!");

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case MULTI_TURN:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}

										if(Mechanics.turnsMultiTurn[0]>0)
										{
											b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
											enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

											b1.addText("The enemy can't move!");
										}
										else
										{
											b1.addText("The attack wore off!");
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case FURY:
									b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
									if(user[userIndex].move[userCmd]!=Pokemon.Move.RAGE)
									b1.addText(user[userIndex].nickname+" is attacking violently!");
									else
									{
										b1.addText(user[userIndex].nickname+"'s RAGE is building!");

										//Attack Boost
										if(user[userIndex].atkStage<6)
										user[userIndex].atkStage++;
										user[userIndex].atk=(int)((Mechanics.calcOtherStat(user[userIndex].baseATK,user[userIndex].ATK_IV,user[userIndex].ATK_EV,user[userIndex].level))*
										Mechanics.stageMultiplier(user[userIndex].atkStage));
										b1.addText(user[userIndex].nickname+"'s ATTACK rose!");
									}
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
										enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

										if(Mechanics.hasSubstitute[1])
										{
											b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
											checkSubstitute(1);
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									if(Mechanics.turnsMultiTurn[0]==0&&user[userIndex].move[userCmd]!=Pokemon.Move.RAGE)
										b1.addText(user[userIndex].nickname+" became confused due to fatigue!");
									break;
								case HIDE:
									if(!Mechanics.awayFromBattle[0])
									{
										b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
										if(hit)
										{
											if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

											b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(user[userIndex].move[userCmd].moveType,
											enemy[enemyIndex].type1,enemy[enemyIndex].type2)));

											if(Mechanics.hasSubstitute[1])
											{
												b1.addText("The substitute took the hit for "+"Enemy "+enemy[enemyIndex].nickname+"!");
												checkSubstitute(1);
											}
										}
										else
										{
											b1.addText("The Attack Missed!");
										}
									}
									else
									{
										if(user[userIndex].move[userCmd]==Pokemon.Move.DIG)
											b1.addText(user[userIndex].nickname+" burrowed underground!");
										else
											b1.addText(user[userIndex].nickname+" flew up high!");
									}
									break;
							}
						}
						break;
					case RAISE_STAT:
						b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);

						incStat.play();

						switch(user[userIndex].move[userCmd])
						{
							case SHARPEN:
							case MEDITATE:
							case SWORDS_DANCE:
								if(user[userIndex].atkStage>=6)
									b1.addText(user[userIndex].nickname+"'s Attack won't go any higher!");
								else
									b1.addText(user[userIndex].nickname+"'s Attack Rose!");
								break;
							case DEFENSE_CURL:
							case HARDEN:
							case WITHDRAW:
							case ACID_ARMOR:
							case BARRIER:
								if(user[userIndex].defStage>=6)
									b1.addText(user[userIndex].nickname+"'s Defense won't go any higher!");
								else
									b1.addText(user[userIndex].nickname+"'s Defense Rose!");
								break;
							case AGILITY:
								if(user[userIndex].speedStage>=6)
									b1.addText(user[userIndex].nickname+"'s Speed won't go any higher!");
								else
									b1.addText(user[userIndex].nickname+"'s Speed Rose!");
								break;
							case GROWTH:
							case AMNESIA:
								if(user[userIndex].spclStage>=6)
									b1.addText(user[userIndex].nickname+"'s Special won't go any higher!");
								else
									b1.addText(user[userIndex].nickname+"'s Special Rose!");
								break;
							case DOUBLE_TEAM:
							case MINIMIZE:
								if(user[userIndex].evaStage>=6)
									b1.addText(user[userIndex].nickname+"'s Evasiveness won't go any higher!");
								else
									b1.addText(user[userIndex].nickname+"'s Evasiveness Rose!");
								break;

						}
						break;
					case LOWER_STAT:
						b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);

						if(hit)
						decStat.play();

						if(hit){
						switch(user[userIndex].move[userCmd])
						{
							case GROWL:
								if(enemy[enemyIndex].atkStage<=-6)
									b1.addText("The enemy's Attack won't fall anymore!");
								else
									b1.addText("The enemy's Attack fell!");
								break;
							case SCREECH:
							case LEER:
							case TAIL_WHIP:
								if(enemy[enemyIndex].defStage<=-6)
									b1.addText("The enemy's Defense won't fall anymore!");
								else
									b1.addText("The enemy's Defense fell!");
								break;
							case FLASH:
							case KINESIS:
							case SAND_ATTACK:
							case SMOKESCREEN:
								if(enemy[enemyIndex].accuracyStage<=-6)
									b1.addText("The enemy's Accuracy won't fall anymore!");
								else
									b1.addText("The enemy's Accuracy fell!");
								break;
							case STRING_SHOT:
								if(enemy[enemyIndex].speedStage<=-6)
									b1.addText("The enemy's Speed won't fall anymore!");
								else
									b1.addText("The enemy's Speed fell!");
								break;
						}
						}
						else
							b1.addText("The move failed!");
						break;
					case INFLICT_STATUS:
						b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
						switch(user[userIndex].move[userCmd])
						{
							case CONFUSE_RAY:
							case SUPERSONIC:
								if(sideHit)
								{
									b1.addText("The enemy became confused!");
									special.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case GLARE:
							case STUN_SPORE:
							case THUNDER_WAVE:
								if(sideHit)
								{
									b1.addText("The enemy is paralyzed! It may not attack!");
									par.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case HYPNOSIS:
							case LOVELY_KISS:
							case SING:
							case SLEEP_POWDER:
							case SPORE:
								if(sideHit)
								{
									b1.addText("The enemy fell asleep!");
									slp.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case LEECH_SEED:
								if(sideHit)
								{
									b1.addText("The enemy was seeded!");
									special.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case POISON_GAS:
							case POISONPOWDER:
							case TOXIC:
								if(sideHit)
								{
									b1.addText("The enemy was poisoned!");
									psn.play();
								}
								else
									b1.addText("The move failed!");
								break;
						}
						break;
					case SPECIAL:

						special.play();

						switch(user[userIndex].move[userCmd])
						{
							case CONVERSION:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								b1.addText(user[userIndex].nickname+" is now the same type as the enemy!");
								break;
							case DISABLE:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								if(hit)
								{
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s "+enemy[enemyIndex].move[Mechanics.moveDisabled[1]]+
										" was disabled!");
								}
								else
								{
									b1.addText("The move failed!");
								}
								break;
							case FOCUS_ENERGY:
								Mechanics.isHighCritical[0]=true;
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								b1.addText(user[userIndex].nickname+" is getting pumped!");
								break;
							case HAZE:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								b1.addText("All status changes are eliminated!");
								break;
							case LIGHT_SCREEN:
							case REFLECT:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								b1.addText("A protective shield was created!");
								break;
							case METRONOME:
							case MIMIC:
							case MIRROR_MOVE:
							case TRANSFORM:
								break;
							case MIST:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								if(hit)
								{
									b1.addText("A protective mist surrounded the area!");
								}
								else
									b1.addText("The move failed!");
								break;
							case RECOVER:
							case SOFTBOILED:
							case REST:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);

								if(user[userIndex].move[userCmd]==Pokemon.Move.REST&&hit)
									b1.addText(user[userIndex].nickname+" started sleeping!");

								if(hit)
									b1.addText(user[userIndex].nickname+" recovered health!");
								else
									b1.addText("The move failed!");
								break;
							case SPLASH:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								if(hit)
								b1.addText("Nothing Happened!");
								break;
							case SUBSTITUTE:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								if(hit)
								{
									b1.addText(user[userIndex].nickname+" created a substitute!");
								}
								else
									b1.addText("The move failed!");
								break;
							case ROAR:
							case TELEPORT:
							case WHIRLWIND:
								b1.addText(user[userIndex].nickname+" used "+user[userIndex].move[userCmd]);
								if(!hit)
									b1.addText("The move failed!");
								else
								{
									if(user[userIndex].move[userCmd]==Pokemon.Move.TELEPORT)
										b1.addText(user[userIndex].nickname+" teleported to safety!");
									else
										b1.addText(user[userIndex].nickname+" sent the enemy away!");
								}
								break;
						}
						break;
				}

				crit=false;
				hit=false;
				sideHit=false;
				break;
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		case 1:
	{
		switch(enemy[enemyIndex].move[enemyCmd].mainEffect)
				{
					case DAMAGE:
						if(!nonPostingCase[1]&&hasPP)
						{
							boolean fixed=false;

							if(!Mechanics.awayFromBattle[1]&&hit&&Mechanics.damage>0)
							{
								userHit.play();
								b1.setFlicker(0);
							}

							switch(enemy[enemyIndex].move[enemyCmd].sideEffect)
							{
								case FIXED_DAMAGE:
									crit=false;
									fixed=true;
								case FAINT:
								case SWIFT:
								case HIGH_CRIT:
								case OHKO:
								case QUICK_ATTACK:
								case NONE:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										if(!fixed)
										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(enemy[enemyIndex].move[enemyCmd].sideEffect==Pokemon.Side_Effect.OHKO&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("It's a One-Hit-KO!");

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case ABSORB:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										b1.addText("Absorbed health from "+user[userIndex].nickname+"!");
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case STAT:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										if(sideHit)
										{
											decStat.play();

											switch(enemy[enemyIndex].move[enemyCmd])
											{
												case ACID:
													b1.addText(user[userIndex].nickname+"'s Defense fell!");
													break;
												case BUBBLE:
												case BUBBLEBEAM:
												case CONSTRICT:
													b1.addText(user[userIndex].nickname+"'s Speed fell!");
													break;
												case PSYCHIC:
													b1.addText(user[userIndex].nickname+"'s Special fell!");
													break;
											}
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case STATUS:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										if(sideHit)
										{
											switch(enemy[enemyIndex].move[enemyCmd])
											{
												case AURORA_BEAM:
												case BLIZZARD:
												case ICE_BEAM:
												case ICE_PUNCH:
													b1.addText(user[userIndex].nickname+" is frozen solid!");
													frz.play();
													break;
												case BODY_SLAM:
												case LICK:
												case THUNDER:
												case THUNDERPUNCH:
												case THUNDERBOLT:
												case THUNDERSHOCK:
													b1.addText(user[userIndex].nickname+" is paralyzed! It may not attack!");
													par.play();
													break;
												case EMBER:
												case FIRE_BLAST:
												case FIRE_PUNCH:
												case FLAMETHROWER:
													b1.addText(user[userIndex].nickname+" was burned!");
													brn.play();
													break;
												case POISON_STING:
												case SLUDGE:
												case SMOG:
													b1.addText(user[userIndex].nickname+" was poisoned!");
													psn.play();
													break;
											}
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case SUBSTATUS:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										if(sideHit)
										{
											switch(enemy[enemyIndex].move[enemyCmd])
											{
												case BITE:
												case BONE_CLUB:
												case HEADBUTT:
												case HYPER_FANG:
												case ROLLING_KICK:
													b1.addText(user[userIndex].nickname+" flinched!");
													break;
												case CONFUSION:
												case PSYBEAM:
													b1.addText(user[userIndex].nickname+" became confused!");
													break;
											}
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case CHARGE:
									switch(enemy[enemyIndex].move[enemyCmd])
									{
										case RAZOR_WIND:
										case SKY_ATTACK:
										case SKULL_BASH:
										case SOLARBEAM:
											if(Mechanics.charging[1])
											{
												b1.addText("Enemy "+enemy[enemyIndex].nickname+" is charging!");
											}
											else
											{
												b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);

												if(hit)
												{
													if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
														b1.addText("Critical Hit!");

													b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
													user[userIndex].type1,user[userIndex].type2)));

													if(Mechanics.hasSubstitute[0])
													{
														b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
														checkSubstitute(0);
													}
												}
												else
												{
													b1.addText("The Attack Missed!");
												}
											}
											break;
										case HYPER_BEAM:
											if(Mechanics.charging[1])
											{
												b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);

												if(hit)
												{
													if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
														b1.addText("Critical Hit!");

													b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
													user[userIndex].type1,user[userIndex].type2)));

													if(Mechanics.hasSubstitute[0])
													{
														b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
														checkSubstitute(0);
													}
												}
												else
												{
													b1.addText("The Attack Missed!");
												}
											}
											else
											{
												b1.addText("Enemy "+enemy[enemyIndex].nickname+" has to recharge!");
											}
											break;
									}
									break;
								case RECOIL:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										if(Mechanics.damage>0&&Mechanics.effective!=Mechanics.Effective.NONE)
										b1.addText("Enemy "+enemy[enemyIndex].nickname+" was hit with recoil!");
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case COLLECT_DAMAGE:
									switch(enemy[enemyIndex].move[enemyCmd])
									{
										case BIDE:
											if(Mechanics.turnsMultiTurn[1]==0)
											{
												b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
												if(hit)
												{
													if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
														b1.addText("Critical Hit!");

													b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
													user[userIndex].type1,user[userIndex].type2)));

													if(Mechanics.hasSubstitute[0])
													{
														b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
														checkSubstitute(0);
													}
												}
												else
												{
													b1.addText("The Attack Missed!");
												}
											}
											else
											{
												b1.addText("Enemy "+enemy[enemyIndex].nickname+" is biding its time!");
											}
											break;
										case COUNTER:
											b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
											if(hit&&Mechanics.storedDamage[1]>0)
											{
												if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
													b1.addText("Critical Hit!");

												b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
												user[userIndex].type1,user[userIndex].type2)));

												if(Mechanics.hasSubstitute[0])
												{
													b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
													checkSubstitute(0);
												}
											}
											else
											{
												b1.addText("The Attack Missed!");
											}
											break;
									}
									break;
								case MULTI_HIT:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										if(Mechanics.damage>0)
										b1.addText("Hit "+timesHit+" times!");
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case MULTI_TURN:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}

										if(Mechanics.turnsMultiTurn[1]>0)
										{
											b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
											user[userIndex].type1,user[userIndex].type2)));

											b1.addText(user[userIndex].nickname+" can't move!");
										}
										else
										{
											b1.addText("The attack wore off!");
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									break;
								case FURY:
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
									if(enemy[enemyIndex].move[enemyCmd]!=Pokemon.Move.RAGE)
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" is attacking violently!");
									else
									{
										b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s RAGE is building!");

										//Attack Boost
										if(enemy[enemyIndex].atkStage<6)
										enemy[enemyIndex].atkStage++;
										enemy[enemyIndex].atk=(int)((Mechanics.calcOtherStat(enemy[enemyIndex].baseATK,enemy[enemyIndex].ATK_IV,enemy[enemyIndex].ATK_EV,enemy[enemyIndex].level))*
										Mechanics.stageMultiplier(enemy[enemyIndex].atkStage));
										b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s ATTACK rose!");
									}
									if(hit)
									{
										if(crit&&Mechanics.effective!=Mechanics.Effective.NONE)
											b1.addText("Critical Hit!");

										b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
										user[userIndex].type1,user[userIndex].type2)));

										if(Mechanics.hasSubstitute[0])
										{
											b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
											checkSubstitute(0);
										}
									}
									else
									{
										b1.addText("The Attack Missed!");
									}
									if(Mechanics.turnsMultiTurn[1]==0&&enemy[enemyIndex].move[enemyCmd]!=Pokemon.Move.RAGE)
										b1.addText("Enemy "+enemy[enemyIndex].nickname+" became confused due to fatigue!");
									break;
								case HIDE:
									if(!Mechanics.awayFromBattle[1])
									{
										b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
										if(hit)
										{
											if(crit)
												b1.addText("Critical Hit!");

											b1.addText(Mechanics.multiplierToString(Mechanics.typeMultiplier(enemy[enemyIndex].move[enemyCmd].moveType,
											user[userIndex].type1,user[userIndex].type2)));

											if(Mechanics.hasSubstitute[0])
											{
												b1.addText("The substitute took the hit for "+user[userIndex].nickname+"!");
												checkSubstitute(0);
											}
										}
										else
										{
											b1.addText("The Attack Missed!");
										}
									}
									else
									{
										if(enemy[enemyIndex].move[enemyCmd]==Pokemon.Move.DIG)
											b1.addText("Enemy "+enemy[enemyIndex].nickname+" burrowed underground!");
										else
											b1.addText("Enemy "+enemy[enemyIndex].nickname+" flew up high!");
									}
									break;
							}
						}
						break;
					case RAISE_STAT:
						b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
						incStat.play();
						switch(enemy[enemyIndex].move[enemyCmd])
						{
							case SHARPEN:
							case MEDITATE:
							case SWORDS_DANCE:
								if(enemy[enemyIndex].atkStage>=6)
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Attack won't go any higher!");
								else
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Attack Rose!");
								break;
							case DEFENSE_CURL:
							case HARDEN:
							case WITHDRAW:
							case ACID_ARMOR:
							case BARRIER:
								if(enemy[enemyIndex].defStage>=6)
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Defense won't go any higher!");
								else
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Defense Rose!");
								break;
							case AGILITY:
								if(enemy[enemyIndex].speedStage>=6)
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Speed won't go any higher!");
								else
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Speed Rose!");
								break;
							case GROWTH:
							case AMNESIA:
								if(enemy[enemyIndex].spclStage>=6)
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Special won't go any higher!");
								else
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Special Rose!");
								break;
							case DOUBLE_TEAM:
							case MINIMIZE:
								if(enemy[enemyIndex].evaStage>=6)
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Evasiveness won't go any higher!");
								else
									b1.addText("Enemy "+enemy[enemyIndex].nickname+"'s Evasiveness Rose!");
								break;

						}
						break;
					case LOWER_STAT:
						b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);

						if(hit)
							decStat.play();

						if(hit)
						switch(enemy[enemyIndex].move[enemyCmd])
						{
							case GROWL:
								if(user[userIndex].atkStage<=-6)
									b1.addText(user[userIndex].nickname+"'s Attack won't fall anymore!");
								else
									b1.addText(user[userIndex].nickname+"'s Attack fell!");
								break;
							case SCREECH:
							case LEER:
							case TAIL_WHIP:
								if(user[userIndex].defStage<=-6)
									b1.addText(user[userIndex].nickname+"'s Defense won't fall anymore!");
								else
									b1.addText(user[userIndex].nickname+"'s Defense fell!");
								break;
							case FLASH:
							case KINESIS:
							case SAND_ATTACK:
							case SMOKESCREEN:
								if(user[userIndex].accuracyStage<=-6)
									b1.addText(user[userIndex].nickname+"'s Accuracy won't fall anymore!");
								else
									b1.addText(user[userIndex].nickname+"'s Accuracy fell!");
								break;
							case STRING_SHOT:
								if(user[userIndex].speedStage<=-6)
									b1.addText(user[userIndex].nickname+"'s Speed won't fall anymore!");
								else
									b1.addText(user[userIndex].nickname+"'s Speed fell!");
								break;
						}
						else
							b1.addText("The move failed!");
						break;
					case INFLICT_STATUS:
						b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
						switch(enemy[enemyIndex].move[enemyCmd])
						{
							case CONFUSE_RAY:
							case SUPERSONIC:
								if(sideHit)
								{
									b1.addText(user[userIndex].nickname+" became confused!");
									special.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case GLARE:
							case STUN_SPORE:
							case THUNDER_WAVE:
								if(sideHit)
								{
									b1.addText(user[userIndex].nickname+" is paralyzed! It may not attack!");
									par.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case HYPNOSIS:
							case LOVELY_KISS:
							case SING:
							case SLEEP_POWDER:
							case SPORE:
								if(sideHit)
								{
									b1.addText(user[userIndex].nickname+" fell asleep!");
									slp.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case LEECH_SEED:
								if(sideHit)
								{
									b1.addText(user[userIndex].nickname+" was seeded!");
									special.play();
								}
								else
									b1.addText("The move failed!");
								break;
							case POISON_GAS:
							case POISONPOWDER:
							case TOXIC:
								if(sideHit)
								{
									b1.addText(user[userIndex].nickname+" was poisoned!");
									psn.play();
								}
								else
									b1.addText("The move failed!");
								break;
						}
						break;
					case SPECIAL:

						special.play();

						switch(enemy[enemyIndex].move[enemyCmd])
						{
							case CONVERSION:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" is now the same type as "+user[userIndex].nickname+"!");
								break;
							case DISABLE:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								if(hit)
								{
									b1.addText(user[userIndex].nickname+"'s "+user[userIndex].move[Mechanics.moveDisabled[0]]+
										" was disabled!");
								}
								else
								{
									b1.addText("The move failed!");
								}
								break;
							case FOCUS_ENERGY:
								Mechanics.isHighCritical[1]=true;
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" is getting pumped!");
								break;
							case HAZE:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								b1.addText("All status changes are eliminated!");
								break;
							case LIGHT_SCREEN:
							case REFLECT:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								b1.addText("A protective shield was created!");
								break;
							case METRONOME:
							case MIMIC:
							case MIRROR_MOVE:
							case TRANSFORM:
								break;
							case MIST:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								if(hit)
								{
									b1.addText("A protective mist surrounded the area!");
								}
								else
									b1.addText("The move failed!");
								break;
							case RECOVER:
							case SOFTBOILED:
							case REST:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);

								if(enemy[enemyIndex].move[enemyCmd]==Pokemon.Move.REST&&hit)
									b1.addText(enemy[enemyIndex].nickname+" started sleeping!");

								if(hit)
									b1.addText("It regenerated health!");
								else
									b1.addText("The move failed!");
								break;
							case SPLASH:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								if(hit)
								b1.addText("Nothing Happened!");
								break;
							case SUBSTITUTE:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								if(hit)
								{
									b1.addText("Enemy "+enemy[enemyIndex].nickname+" created a substitute!");
								}
								else
									b1.addText("The move failed!");
								break;
							case ROAR:
							case TELEPORT:
							case WHIRLWIND:
								b1.addText("Enemy "+enemy[enemyIndex].nickname+" used "+enemy[enemyIndex].move[enemyCmd]);
								if(!hit)
									b1.addText("The move failed!");
								else
								{
									if(enemy[enemyIndex].move[enemyCmd]==Pokemon.Move.TELEPORT)
										b1.addText(enemy[enemyIndex].nickname+" teleported away!");
									else
										b1.addText(enemy[enemyIndex].nickname+" sent you away!");
								}
								break;
						}
						break;
				}
				break;
		}
	}

		crit=false;
		hit=false;
		sideHit=false;
	}