
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.applet.*;


public class UnitGraphicsEngineApp extends UnitGraphicsEngine {


	static Image imgBlueSoldier[] = new Image[4];
	static Image imgRedSoldier[] = new Image[4];

	static Image imgBlueCavalry[] = new Image[4];
	static Image imgRedCavalry[] = new Image[4];

	static Image imgBlueArcher[] = new Image[4];
	static Image imgRedArcher[] = new Image[4];

	static Image imgBlueKing[] = new Image[4];
	static Image imgRedKing[] = new Image[4];

	public UnitGraphicsEngineApp(Applet viewer, MediaTracker mediaTracker) {
		this.mediaTracker = mediaTracker;
		MTID = 0;

		// 歩兵画像の読み込み。
		imgBlueSoldier[0] = viewer.getImage(viewer.getCodeBase(), "blue_soldier0.gif");
		mediaTracker.addImage(imgBlueSoldier[0], MTID);
		imgBlueSoldier[1] = viewer.getImage(viewer.getCodeBase(), "blue_soldier1.gif");
		mediaTracker.addImage(imgBlueSoldier[1], MTID);
		imgBlueSoldier[2] = viewer.getImage(viewer.getCodeBase(), "blue_soldier2.gif");
		mediaTracker.addImage(imgBlueSoldier[2], MTID);
		imgBlueSoldier[3] = viewer.getImage(viewer.getCodeBase(), "blue_soldier3.gif");
		mediaTracker.addImage(imgBlueSoldier[3], MTID);

		imgRedSoldier[0] = viewer.getImage(viewer.getCodeBase(), "red_soldier0.gif");
		mediaTracker.addImage(imgRedSoldier[0], MTID);
		imgRedSoldier[1] = viewer.getImage(viewer.getCodeBase(), "red_soldier1.gif");
		mediaTracker.addImage(imgRedSoldier[1], MTID);
		imgRedSoldier[2] = viewer.getImage(viewer.getCodeBase(), "red_soldier2.gif");
		mediaTracker.addImage(imgRedSoldier[2], MTID);
		imgRedSoldier[3] = viewer.getImage(viewer.getCodeBase(), "red_soldier3.gif");
		mediaTracker.addImage(imgRedSoldier[3], MTID);

		// 騎兵画像の読み込み。
		imgBlueCavalry[0] = viewer.getImage(viewer.getCodeBase(), "blue_cavalry0.gif");
		mediaTracker.addImage(imgBlueCavalry[0], MTID);
		imgBlueCavalry[1] = viewer.getImage(viewer.getCodeBase(), "blue_cavalry1.gif");
		mediaTracker.addImage(imgBlueCavalry[1], MTID);
		imgBlueCavalry[2] = viewer.getImage(viewer.getCodeBase(), "blue_cavalry2.gif");
		mediaTracker.addImage(imgBlueCavalry[2], MTID);
		imgBlueCavalry[3] = viewer.getImage(viewer.getCodeBase(), "blue_cavalry3.gif");
		mediaTracker.addImage(imgBlueCavalry[3], MTID);

		imgRedCavalry[0] = viewer.getImage(viewer.getCodeBase(), "red_cavalry0.gif");
		mediaTracker.addImage(imgRedCavalry[0], MTID);
		imgRedCavalry[1] = viewer.getImage(viewer.getCodeBase(), "red_cavalry1.gif");
		mediaTracker.addImage(imgRedCavalry[1], MTID);
		imgRedCavalry[2] = viewer.getImage(viewer.getCodeBase(), "red_cavalry2.gif");
		mediaTracker.addImage(imgRedCavalry[2], MTID);
		imgRedCavalry[3] = viewer.getImage(viewer.getCodeBase(), "red_cavalry3.gif");
		mediaTracker.addImage(imgRedCavalry[3], MTID);

		// 弓兵画像の読み込み。
		imgBlueArcher[0] = viewer.getImage(viewer.getCodeBase(), "blue_archer0.gif");
		mediaTracker.addImage(imgBlueArcher[0], MTID);
		imgBlueArcher[1] = viewer.getImage(viewer.getCodeBase(), "blue_archer1.gif");
		mediaTracker.addImage(imgBlueArcher[1], MTID);
		imgBlueArcher[2] = viewer.getImage(viewer.getCodeBase(), "blue_archer2.gif");
		mediaTracker.addImage(imgBlueArcher[2], MTID);
		imgBlueArcher[3] = viewer.getImage(viewer.getCodeBase(), "blue_archer3.gif");
		mediaTracker.addImage(imgBlueArcher[3], MTID);

		imgRedArcher[0] = viewer.getImage(viewer.getCodeBase(), "red_archer0.gif");
		mediaTracker.addImage(imgRedArcher[0], MTID);
		imgRedArcher[1] = viewer.getImage(viewer.getCodeBase(), "red_archer1.gif");
		mediaTracker.addImage(imgRedArcher[1], MTID);
		imgRedArcher[2] = viewer.getImage(viewer.getCodeBase(), "red_archer2.gif");
		mediaTracker.addImage(imgRedArcher[2], MTID);
		imgRedArcher[3] = viewer.getImage(viewer.getCodeBase(), "red_archer3.gif");
		mediaTracker.addImage(imgRedArcher[3], MTID);

		// 王様画像の読み込み。
		imgBlueKing[0] = viewer.getImage(viewer.getCodeBase(), "blue_king0.gif");
		mediaTracker.addImage(imgBlueKing[0], MTID);
		imgBlueKing[1] = viewer.getImage(viewer.getCodeBase(), "blue_king1.gif");
		mediaTracker.addImage(imgBlueKing[1], MTID);
		imgBlueKing[2] = viewer.getImage(viewer.getCodeBase(), "blue_king2.gif");
		mediaTracker.addImage(imgBlueKing[2], MTID);
		imgBlueKing[3] = viewer.getImage(viewer.getCodeBase(), "blue_king3.gif");
		mediaTracker.addImage(imgBlueKing[3], MTID);

		imgRedKing[0] = viewer.getImage(viewer.getCodeBase(), "red_king0.gif");
		mediaTracker.addImage(imgRedKing[0], MTID);
		imgRedKing[1] = viewer.getImage(viewer.getCodeBase(), "red_king1.gif");
		mediaTracker.addImage(imgRedKing[1], MTID);
		imgRedKing[2] = viewer.getImage(viewer.getCodeBase(), "red_king2.gif");
		mediaTracker.addImage(imgRedKing[2], MTID);
		imgRedKing[3] = viewer.getImage(viewer.getCodeBase(), "red_king3.gif");
		mediaTracker.addImage(imgRedKing[3], MTID);

		try
		{
			//イメージの強制ロードを要求
			mediaTracker.waitForID(MTID);
		}
		catch (InterruptedException e)
		{
			return;
		}

	}
	public void show(Graphics g, int x, int y, unit uni, Component view) {
			g.setColor( Color.red );
			g.fillRect( x,y, 64,64 );
	}

	/** 歩兵を描画するルーチン。 */
	public void show(Graphics g, int x, int y, soldier sol, Component view) {
		if (0 == sol.getNationality()) {
			g.drawImage( imgBlueSoldier[sol.getDirection()], x,y, view);
		} else
			g.drawImage( imgRedSoldier[sol.getDirection()], x,y, view);
	}
	/** 騎兵を描画するルーチン。 */
	public void show(Graphics g, int x, int y, cavalry sol, Component view) {
		if (0 == sol.getNationality()) {
			g.drawImage( imgBlueCavalry[sol.getDirection()], x,y, view);
		} else
			g.drawImage( imgRedCavalry[sol.getDirection()], x,y, view);
	}
	/** 弓兵を描画するルーチン。 */
	public void show(Graphics g, int x, int y, archer sol, Component view) {
		if (0 == sol.getNationality()) {
			g.drawImage( imgBlueArcher[sol.getDirection()], x,y, view);
		} else
			g.drawImage( imgRedArcher[sol.getDirection()], x,y, view);
	}
	/** 王様を描画するルーチン。 */
	public void show(Graphics g, int x, int y, king sol, Component view) {
		if (0 == sol.getNationality()) {
			g.drawImage( imgBlueKing[sol.getDirection()], x,y, view);
		} else
			g.drawImage( imgRedKing[sol.getDirection()], x,y, view);
	}
}