public BoatStatus getNextBS() { BoatStatus status = new BoatStatus(); int p = right_coast.getCount(true); int d = right_coast.getCount(false); if (boat.isRight()) { p += boat.getCount(true); d += boat.getCount(false); } bool isRight = boat.isRight(); // the right path if (p == 3 && d == 3 && isRight) { status = BoatStatus.PD; } else if (p == 2 && d == 2 && !isRight) { status = BoatStatus.P; } else if (p == 3 && d == 2 && isRight) { status = BoatStatus.DD; } else if (p == 3 && d == 0 && !isRight) { status = BoatStatus.D; } else if (p == 3 && d == 1 && isRight) { status = BoatStatus.PP; } else if (p == 1 && d == 1 && !isRight) { status = BoatStatus.PD; } else if (p == 2 && d == 2 && isRight) { status = BoatStatus.PP; } else if (p == 0 && d == 2 && !isRight) { status = BoatStatus.D; } else if (p == 0 && d == 3 && isRight) { status = BoatStatus.DD; } else if (p == 0 && d == 1 && !isRight) { status = BoatStatus.D; } else if (p == 0 && d == 2 && isRight) { status = BoatStatus.DD; } // the other status else if (p == 3 && d == 2 && !isRight) { status = BoatStatus.D; } else if (p == 3 && d == 1 && !isRight) { status = BoatStatus.DD; } return(status); }
public void nextOnBoat() { BoatStatus status = getNextBS(); nextOffBoat(); if (status == BoatStatus.P) { for (int i = 0; i < characters.Length; ++i) { if (characters[i].getCoastController().isRight() == boat.isRight() && characters[i].isPriest()) { characterIsClicked(characters[i]); break; } } } else if (status == BoatStatus.PP) { int count = 0; for (int i = 0; i < characters.Length; ++i) { if (characters[i].getCoastController().isRight() == boat.isRight() && characters[i].isPriest()) { characterIsClicked(characters[i]); ++count; if (count == 2) { break; } } } } else if (status == BoatStatus.D) { for (int i = 0; i < characters.Length; ++i) { if (characters[i].getCoastController().isRight() == boat.isRight() && !characters[i].isPriest()) { characterIsClicked(characters[i]); break; } } } else if (status == BoatStatus.DD) { int count = 0; for (int i = 0; i < characters.Length; ++i) { if (characters[i].getCoastController().isRight() == boat.isRight() && !characters[i].isPriest()) { characterIsClicked(characters[i]); ++count; if (count == 2) { break; } } } } else if (status == BoatStatus.PD) { int count_p = 0; int count_d = 0; for (int i = 0; i < characters.Length; ++i) { if (characters[i].getCoastController().isRight() == boat.isRight()) { if (count_p == 0 && characters[i].isPriest()) { characterIsClicked(characters[i]); count_p++; } else if (count_d == 0 && !characters[i].isPriest()) { characterIsClicked(characters[i]); count_d++; } } } } }
public void Crash() { Status = BoatStatus.Sunk; }