public class Reimu extends Body implements java.io.Serializable {
	static final long serialVersionUID = 1L;
	
	@Override
	protected void showWantFood() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ごはんしゃんのにおいがすりゅよ", "ごはんしゃんのにおいがすりゅよ", "ごはんさんのにおいがするよ"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"The shmell of mishder food!", "Shmell of mishder food!", "It's the smell of mister food!"};
			setMessage(messagesE[ageState]);
			break;
		}
	}
	
	@Override
	public void showNoFood() {
		if (toFood == false) {
			return;
		}
		toFood = false;
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"ごはんしゃんにゃいよ！", "ごはんしゃんにゃいよ？ばきゃなの？しにゅの？", "ごはんさんないよ？ばかなの？しぬの？"},
									{"ごはんしゃんかえちて、、、", "ごはんしゃんかえちて、、、", "ごはんさんがえぢでぐだざいぃ、、、"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"Mishder food ish nod here!", "Mishder food ish nod here! Are you shtoopid?  Wand choo die?", "Mister food is not here?  Are you stupid? Want to die?"},
									{"Gib back mishder food...", "Gib back mishder food...", "Pwease give back mister food..."}};
			setMessage(messagesE[damageState][ageState]);

			break;
		}
		stay();
	}
	
	@Override
	protected void showExcite() {
		if (excitement) {
			switch (language) {
			case JAPANESE:
				setMessage("すっぎりじだいの〜！");
				break;
			case ENGLISH:
				setMessage("Want to refresh~!");
				break;
			}
		}
	}

	@Override
	protected void showRelax() {
		if (rnd.nextInt(2) == 0) {
			switch (language) {
			case JAPANESE:
				String messagesJ[] = {"ふーりふーり", "れいみゅかわいきゅてごみぇんね！", "れいむのあにゃるでしこってもいいよ！"};
				setMessage(messagesJ[ageState], 30);
				break;
			case ENGLISH:
				String messagesE[] = {"Relax-relax~", "Weimu ish showwy for being sho cude!", "Taste Reimu's anyaru is ok too!"};
				setMessage(messagesE[ageState], 30);
				break;
			}
			furifuri = true;
			stay(30);
		}
		else {
			switch (language) {
			case JAPANESE:
				String messagesJ[] = {"ゆっきゅりしていっちぇね！", "ゆっきゅりしていっちぇね！", "ゆっくりしていってね！"};
				setMessage(messagesJ[ageState]);
				break;
			case ENGLISH:
				String messagesE[] = {"Chake id eajy!", "Chake id eajy!", "Take it easy!"};
				setMessage(messagesE[ageState]);
				break;
			}
			stay();
		}
	}
	
	@Override
	protected void showWakeup() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ゆっきゅりしていっちぇね！", "ゆっきゅりしていっちぇね！", "ゆっくりしていってね！"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Chake id eajy!", "Chake id eajy!", "Take it easy!"};
			setMessage(messagesE[ageState]);
			break;
		}
		stay();
	}

	@Override
	protected void showSleep() {
		if (sleep != 0) {
			switch (language) {
			case JAPANESE:
				setMessage("すーやすーや");
				break;
			case ENGLISH:
				setMessage("Sleep-Sleep---");
				break;
			}
		}		
	}
	
	@Override
	protected void showScream() {
		messageBuf = null;
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"ゆんやー！", "いちゃい！ぷきゅーじゃよ！", "いたい！ぷくーだよ！"},
									{"やめちぇにぇやめちぇにぇ", "ごめんなちゃいやめちぇにぇ、、、", "どぼじででいぶにこんなごどずるのぉ、、、"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"YUNYA-!!", "ID HURD!  Going choo pyuff-pyuff!", "It hurts! Puff!!"},
									{"Shdop id shdop id-", "Weimu ish showwy sho pwease shdop id...", "Why would you do thisss...."}};
			setMessage(messagesE[damageState][ageState]);
			break;
		}
		strike = true;
		stay();
	}
	
	@Override
	protected void showScare() {
		if (sleeping) {
			return;
		}
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"ゆんやー！", "ゆっくちできにゃいー！", "なんだかゆっくりできないよ！"},
									{"やめちぇにぇやめちぇにぇ", "ごめんなちゃいやめちぇにぇ、、、", "どぼじででいぶにこんなごどずるのぉ、、、"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"YUNYA-!!", "I can'ch chake id eajy!", "I feel like I can't take it easy!"},
									{"Shdop id shdop id-", "Weimu ish showwy sho pwease shdop id...", "Why would you do thisss...."}};
			setMessage(messagesE[damageState][ageState]);
			break;
		}
	}
	
	@Override
	protected void showAlarm() {
		if (sleeping) {
			return;
		}
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"にゃんだかゆっくちできにゃい！", "にゃんだかゆっくちできにゃい！", "なんだかゆっくりできないよ！"},
									{"やめちぇにぇやめちぇにぇ", "ごめんなちゃいやめちぇにぇ、、、", "どぼじででいぶにこんなごどずるのぉ、、、"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"I can'ch chake id eajy!", "I can'ch chake id eajy!", "I feel like I can't take it easy!"},
									{"Shdop id shdop id-", "Weimu ish showwy sho pwease shdop id...", "Why would you do thisss...."}};
			setMessage(messagesE[damageState][ageState]);
			break;
		}
	}
	
	@Override
	protected void showDieing() {
		messageBuf = null;
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ゆべっ！", "ぷきゅっ！", "げぼっ！"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Yubee!!", "Puff!", "Blarg!"};
			setMessage(messagesE[ageState]);
			break;
		}
		stay();
	}
	
	@Override
	protected void showDead() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"もっちょゆっくちしちゃかった、、、", "もっちょゆっくちしちゃかった、、、", "もっとゆっくりしたかった、、、"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Wanted choo chake id eajy more...", "Wanted choo chake id eajy more...", "Wanted to take it easy more..."};
			setMessage(messagesE[ageState]);
			break;
		}
	}
	
	@Override
	protected void showEating() {
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"む〜ちゃむ〜ちゃ、ちあわちぇー", "むーちゃむーちゃ、ちあわちぇー", "むーしゃむーしゃ、しあわせー"},
									{"むっちゃむっちゃ、、、", "むちゃむちゃ、はふはふ", "むっしゃむっしゃ、うめぇ"}};
			setMessage(messagesJ[hungryState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"Myunch-Myunch, happinesh~ ", "Myunch~ Myunch~ Happinesh~", "Munch munch, Happiness"},
									{"Myunch myunch...", "Myunch Myunch, nom nom", "Munch munch, so good!"}};
			setMessage(messagesE[hungryState][ageState]);
			break;
		}
		eating = true;
		stay();
	}
	
	@Override
	protected void showFull() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"おにゃかいっぱい、、、", "おにゃかいっぱい、、、", "もうたべられないの、、、"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Tummy ish full...", "Tummy ish full...", "Can't eat anymore..."};
			setMessage(messagesE[ageState]);
			break;
		}
		stay();
	}
	
	@Override
	protected void showHealing() {
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"あみゅあみゃ！", "ゆっきゅちしちゃよ！", "ゆっくりしたよ！"},
									{"あみゃあみゃ", "ゆっきゅちしちゃよ", "ゆっくりしたよ"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"Shweet-shweet!", "Eajy!", "Can take it easy!"},
									{"Shweet-shweet", "Can chake id eajy", "Can take it easy"}};
			setMessage(messagesE[damageState][ageState]);
			break;
		}
		stay();
	}
	
	@Override
	protected void showSukkiri() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ちゅっきち！", "ちゅっきり！", "すっきり！"};
			setMessage(messagesJ[ageState], 30);
			break;
		case ENGLISH:
			String messagesE[] = {"Wefweshed!", "Wefeshed!", "Refreshed!"};
			setMessage(messagesE[ageState], 30);
			break;
		}
		sukkiri = true;
		stay(30);
	}
	
	@Override
	protected void showBirth() {
		switch (language) {
		case JAPANESE:
			setMessage("ゆっくちちていっちぇね！", 30);
			break;
		case ENGLISH:
			setMessage("Chake id eajy!", 30);
			break;
		}
		stay(30);
	}

	@Override
	protected void showShit() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"うんうんぢぇりゅ！", "りぇいみゅのすーぴゃーうんうんちゃいみゅはぢみゃりゅにょ！", "れいむのすーぱーうんうんたいむはじまるよ！"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Poo-pooing!", "Weimu's shuupa poo-poo time ish shtarting!", "Reimu's super poo-poo time is starting!"};
			setMessage(messagesE[ageState]);
			break;
		}
	}
	
	@Override
	protected void showShit2() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"すっきち！", "すっきちー！", "すっきりー！"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Wefeshed!", "Wefeshed-!!", "Refreshed~!"};
			setMessage(messagesE[ageState]);
			break;
		}
		furifuri = true;
		stay();
	}
	
	@Override
	protected void showSurisuri() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ちゅりちゅり", "ちゅーりちゅーり", "すーりすーり"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Wub-wub", "Wub-wub", "Rub-rub"};
			setMessage(messagesE[ageState]);
			break;
		}
		stay();
	}

	@Override
	protected void showPeroPero() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ぺりょぺりょ", "ぺーりょぺーりょ", "ぺーろぺーろ"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Wick-wick~", "Wick-wick~", "Lick-lick~"};
			setMessage(messagesE[ageState]);
			break;
		}
		peropero = true;
		stay();
	}
	
	@Override
	protected void showBreed() {
		switch (language) {
		case JAPANESE:
			setMessage("う、うばれる、、、");
			break;
		case ENGLISH:
			setMessage("B...Being born...");
			break;
		}
	}
	
	@Override
	protected void showBreed2() {
		messageBuf = null;
		switch (language) {
		case JAPANESE:
			setMessage("ゆっくりしていってね！");
			break;
		case ENGLISH:
			setMessage("Take it easy!");
			break;
		}
		furifuri = true;
		stay();
	}
	
	@Override
	public void showHateShit() {
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"くちゃい〜！", "うんうんくちゃい！しゅぎゅにかたじゅきぇりょ！", "うんうんかたづけてね！すぐでいいよ！"},
									{"くちゃい、、、", "くちゃいよ、ゆっきゅりできにゃい、、、", "くさいよ、ゆっくりできないよ、、、"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"Shmelly~!", "Poo-poo shdinky!!  Help eajy!!", "Hurry up and save me from poo-poo!! Right now is fine!"},
									{"Shmelly...", "Shmelly, can'ch chake id eajy...", "Smelly... can't take it easy..."}};
			setMessage(messagesE[damageState][ageState]);
			break;
		}
	}
	
	@Override
	protected void showHungry() {
		switch (language) {
		case JAPANESE:
			String messagesJ[][] = {{"あみゃあみゃちょうじゃい！", "ごはんしゃんをれいみゅにもってきちぇね！", "ごはんさんをれいむにちょうだいね！たくさんでいいよ！"},
									{"ごはんしゃんどきょ？", "おにゃきゃへっちゃよ、、、", "でいぶにごはんぐだざいぃ"}};
			setMessage(messagesJ[damageState][ageState]);
			break;
		case ENGLISH:
			String messagesE[][] = {{"Gib up shweet-shweets!", "Bwing mishder munch-munch choo Weimu!", "Bring the munch-munch to Reimu! A lot is fine!"},
										{"Where ish mishder food?", "Misder tummy ish hungwy...", "Pwease give Deibu some food..."}};
			setMessage(messagesE[damageState][ageState]);
			break;
		}
		stay();
	}
	
	@Override
	protected void showNoAccessory() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ゆぇーん！おりぼんしゃんどきょ？", "ゆぇーん！りぇいみゅのきゃわいいおりぼんしゃんどこ？", "れいむのおりぼんさんどこ？"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH: 
			String messagesE[] = {"Yunn~!  Where ish misder Wibbon?", "Yunn~!  Where ish Weimu's cude-cude misder Wibbon?", "Where's Reimu's mister ribbon?"};
			setMessage(messagesE[ageState]);
			break;
		}
	}
	
	@Override
	public void showHateYukkuri() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"ゆっくちできにゃいゆっくちがいりゅよ", "ゆっくちできにゃいゆっくちがいりゅよ", "ゆっくりできないゆっくりがいるよ！せいっさいするよ！"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"There'sh a yukkuri that can'ch chake id eajy", "There'sh a yukkuri that can'ch chake id eajy", "A yukkuri that can't take it easy!  Punishment time!"};
			setMessage(messagesE[ageState]);
			break;
		}
	}
	
	@Override
	protected void showFlying() {
		switch (language) {
		case JAPANESE:
			String messagesJ[] = {"おちょらをとんでりゅみちゃい！", "りぇいむはおしょらをとぶとりさん！", "おそらをとんでるみたい！"};
			setMessage(messagesJ[ageState]);
			break;
		case ENGLISH:
			String messagesE[] = {"Ich feewsh wike fwying!", "Weimu ish mishter flying bird!", "I feel like I'm flying!"};
			setMessage(messagesE[ageState]);
			break;
		}
	}

	// public methods
	public Reimu(int initX, int initY, int initZ, int initAgeState, Body p1, Body p2, int language) {
		super(initX, initY, initZ, Body.REIMU, initAgeState, p1, p2, language);
	}
}
