public boolean execute(Body b) {
		// 複数の動作を順次行うのでtickで管理
		if(tick == 0) {
			// 固まる
			b.lookTo(getFrom().getX(), getFrom().getY());
			b.setForceFace(ConstantValues.NORMAL);
			b.stay();
		} else if(tick == 30) {
			// 驚く
			b.lookTo(getFrom().getX(), getFrom().getY());
			b.setForceFace(ConstantValues.SURPRISE);
			b.setBodyEventResMessage(MessagePool.getMessage(b, MessagePool.Action.Surprise), 52, true, false);
			b.stay();
		} else if(tick == 80) {
			// 吐く
			b.lookTo(getFrom().getX(), getFrom().getY());
			b.setForceFace(ConstantValues.CRYING);
			b.setBodyEventResMessage(MessagePool.getMessage(b, MessagePool.Action.Vomit), 62, true, false);
			int ofsX = Translate.invertX(b.getCollisionX()>>1, b.getY());
			if(b.getDirection() == Direction.LEFT) ofsX = -ofsX;
			SimYukkuri.mypane.terrarium.addVomit(b.getX() + ofsX, b.getY(), b.getZ(), b.getAgeState(), b.getShitType());
			b.stay();
		} else if(tick == 140) {
			// 善良ほどストレスを受ける
			switch(b.getAttitude()) {
				default:
					break;
				case VERY_NICE:
					b.addStress(4000);
					break;
				case NICE:
					b.addStress(2500);
					break;
				case AVERAGE:
					b.addStress(1500);
					break;
				case SHITHEAD:
					b.addStress(500);
					break;
			}
			b.setHappiness(Happiness.VERY_SAD);
			return true;
		} else {
			b.lookTo(getFrom().getX(), getFrom().getY());
			b.stay();
		}
		tick++;
		
		return false;
	}