public class Hint : IActionListener
{
	public int x;

	public int y;

	public int curObjective;

	public static Image hand;

	public static string[] str = new string[10] { "Chào mừng bạn đến với trại huấn luyện Mobi Army 3", "Bạn hãy bấm phím mũi tên trái phải để di chuyển nhân vật.", "Thanh lực màu vàng bên dưới cho biết quãng đường bạn có thể đi.", "Kéo nòng nhắm để chỉnh hướng bắn. ", "Nhấn và giữ cò súng để canh lực bắn. Thanh lực phía trên hiển thị góc gió và lực của gió", "Hãy cố gắng bắn trúng đối thủ của bạn.", "Dùng vật phẩm bơm máu để chữa trị các vết thương và tiếp tục cuộc chiến.", "Nắm kéo màn hình để quan sát trận địa.", "Vũ khí của bạn sẽ có tốc độ nạp đạn, chỉ số này được hiển thị bên góc phải màn hình", "chỉ số này sẽ tăng lên sau khi bắn và giảm xuống sau khi chuyển lượt, lượt tiếp theo sẽ thuộc về người có chỉ số tốc độ nạp đạn thấp nhất" };

	public static string[] str2 = new string[10] { "Chào mừng bạn đến với trại huấn luyện Mobi Army 3", "Bạn hãy bấm phím mũi tên trái phải để di chuyển nhân vật.", "Thanh lực màu vàng bên dưới cho biết quãng đường bạn có thể đi.", "Dùng các phím mũi tên lên xuống để nhắm.", "Nhấn và giữ phím giữa để canh lực và bắn.", "Hãy cố gắng bắn trúng đối thủ của bạn.", "Dùng vật phẩm bơm máu để chữa trị các vết thương và tiếp tục cuộc chiến.", "Hãy dùng camera để quan sát địa hình.", "Vũ khí của bạn sẽ có tốc độ nạp đạn, chỉ số này được hiển thị bên góc phải màn hình", "chỉ số này sẽ tăng lên sau khi bắn và giảm xuống sau khi chuyển lượt, lượt tiếp theo sẽ thuộc về người có chỉ số tốc độ nạp đạn thấp nhất" };

	public static int[] type = new int[11]
	{
		0, 1, 0, 1, 1, 0, 1, 1, 1, 1,
		1
	};

	public bool finish;

	private bool wait;

	private int iFrame;

	private bool[] condition = new bool[2];

	public static bool nextTurn;

	public Hint()
	{
		curObjective = 0;
		if (!MyMidlet.trainingSuccess)
		{
			int num = Rms.loadRMSInt("trainarm3");
			if (num == -1)
			{
				finish = false;
			}
			if (num == 1)
			{
				finish = true;
			}
		}
		else
		{
			finish = true;
		}
	}

	public static void loadImage()
	{
		hand = CCanvas.loadImage("/gui2/bantay.png");
	}

	public void update()
	{
		if (finish || curObjective == -1)
		{
			return;
		}
		iFrame++;
		if (iFrame > 5)
		{
			iFrame = 0;
		}
		if (wait)
		{
			switch (curObjective)
			{
			case 4:
			case 7:
				if (nextTurn)
				{
					wait = false;
					perform(1000, null);
				}
				break;
			case 5:
				if (PM.getCurPlayer().hp < PM.getCurPlayer().maxhp)
				{
					wait = false;
					perform(1000, null);
				}
				break;
			case 6:
				break;
			}
			return;
		}
		switch (curObjective)
		{
		case 1:
			if (CCanvas.isTouch)
			{
				x = 0;
				y = CCanvas.h - 34;
				if (!condition[0])
				{
					x += 17;
					y += 17;
				}
				else if (!condition[1])
				{
					x += 49;
					y += 17;
				}
			}
			if (PM.getCurPlayer().state == 1)
			{
				if (PM.getCurPlayer().look == 2)
				{
					condition[0] = true;
				}
				if (condition[0] && PM.getCurPlayer().look == 0)
				{
					condition[1] = true;
				}
			}
			if (condition[0] && condition[1] && !CCanvas.isPointerDown)
			{
				perform(1000, null);
			}
			break;
		case 3:
			if (CCanvas.isTouch)
			{
				x = PM.getCurPlayer().x - Camera.x + PM.getCurPlayer().dx2;
				y = PM.getCurPlayer().y - Camera.y - PM.getCurPlayer().dy2 - 11;
			}
			if (PM.getCurPlayer().isHoldAngle)
			{
				condition[1] = true;
			}
			if (CCanvas.keyHold[2] || CCanvas.keyHold[8])
			{
				condition[0] = true;
			}
			if (condition[0] && (!CCanvas.keyHold[2] || !CCanvas.keyHold[8]))
			{
				condition[1] = true;
			}
			if (condition[1] && !CCanvas.isPointerDown)
			{
				perform(1000, null);
			}
			break;
		case 4:
			if (CCanvas.isTouch)
			{
				x = CCanvas.w - 20;
				y = CCanvas.h - 17;
			}
			if (PM.getCurPlayer().isHoldFire || CCanvas.keyHold[5])
			{
				condition[0] = true;
			}
			if (condition[0] && (!PM.getCurPlayer().isHoldFire || !CCanvas.keyHold[5]))
			{
				condition[1] = true;
			}
			if (condition[0] && condition[1])
			{
				wait = true;
				nextTurn = false;
			}
			break;
		case 5:
			if (CCanvas.currentDialog == null)
			{
				CCanvas.startOKDlg(str[curObjective], new Command(string.Empty, this, 1004, null));
			}
			break;
		case 6:
			if (CCanvas.isTouch)
			{
				x = 13;
				y = 9;
			}
			else
			{
				x = 13;
				y = CCanvas.h - 9;
			}
			if (CCanvas.panel.isShow)
			{
				condition[0] = true;
			}
			if (condition[0] && !CCanvas.panel.isShow)
			{
				perform(1000, null);
			}
			break;
		case 7:
			if (CCanvas.isTouch)
			{
				x = 0;
				y = 0;
			}
			else if (CCanvas.menu.showMenu)
			{
				x = 0;
				y = 0;
			}
			else
			{
				x = CCanvas.w - 12;
				y = CCanvas.h - 12;
			}
			if (Camera.mode == 0 || Camera.mode == 9)
			{
				x = 0;
				y = 0;
				wait = true;
				nextTurn = false;
				PM.getCurPlayer().isUsedItem = false;
			}
			break;
		case 8:
			if (CCanvas.isTouch)
			{
				x = CCanvas.w - 10;
				y = 60;
			}
			else
			{
				x = CCanvas.w - 10;
				y = 25;
			}
			if (CCanvas.currentDialog == null)
			{
				perform(1000, null);
			}
			break;
		case 9:
			if (CCanvas.isTouch)
			{
				x = CCanvas.w - 10;
				y = 60;
			}
			else
			{
				x = CCanvas.w - 10;
				y = 25;
			}
			if (CCanvas.currentDialog == null)
			{
				CCanvas.startOKDlg("Hãy tiêu diệt kẻ thù để vượt qua nhiệm vụ đầu tiên nhé...", new Command(L.yes(), this, 1003, null));
			}
			break;
		default:
			if (CCanvas.currentDialog == null)
			{
				CCanvas.startOKDlg((!CCanvas.isTouch) ? str2[curObjective] : str[curObjective], new Command(string.Empty, this, 1000, null));
			}
			break;
		}
	}

	public void nextObjective()
	{
		condition[0] = (condition[1] = false);
		curObjective++;
	}

	public void paint(mGraphics g)
	{
		if (!finish && curObjective != -1 && type[curObjective] != 0 && !condition[1] && (GameScr.pm.isYourTurn() || curObjective == 8 || curObjective == 9) && (x != 0 || y != 0))
		{
			int num = x + g.getTranslateX();
			int num2 = y + g.getTranslateY();
			if (CCanvas.gameTick % 6 < 4)
			{
				g.drawImage(GameScr.focus, num, num2, 3, false);
				g.drawImage(hand, num - 12, num2, 0, false);
			}
			else
			{
				g.drawImage(hand, num - 14, num2 - 2, 0, false);
			}
		}
	}

	public void perform(int idAction, object p)
	{
		if (idAction == 1000)
		{
			CCanvas.currentDialog = null;
			nextObjective();
			if (type[curObjective] != 0)
			{
				CCanvas.startOKDlg((!CCanvas.isTouch) ? str2[curObjective] : str[curObjective], new Command(string.Empty, this, 1001, null));
			}
		}
		if (idAction == 1001)
		{
			CCanvas.currentDialog = null;
		}
		if (idAction == 1002)
		{
			GameScr.trainingMode = false;
		}
		if (idAction == 1003)
		{
			CCanvas.currentDialog = null;
			curObjective = -1;
			GameScr.trainingMode = false;
			Rms.saveRMSInt("trainarm3", 1);
		}
		if (idAction == 1004)
		{
			CCanvas.currentDialog = null;
			wait = true;
		}
	}
}
