package com.weem.epicinventor.hud;
import com.weem.epicinventor.*;
import java.awt.*;
import java.util.ArrayList;
public class HUDScreenCharacterSelection extends HUD {
private final static int TITLE_WIDTH = 420;
private final static int TITLE_HEIGHT = 37;
private final static int TITLE_X = 188;
private final static int TITLE_Y = 110;
private final static int BUTTON_RED_X_WIDTH = 42;
private final static int BUTTON_RED_X_HEIGHT = 42;
private final static int BUTTON_RED_X_X = 733;
private final static int BUTTON_RED_X_Y = 25;
private final static int CHARACTER_NAME_X = 211;
private final static int CHARACTER_NAME_STARY_Y = 168;
private final static int CHARACTER_NAME_SPACING = 60;
private final static int CHARACTER_NAME_WIDTH = 372;
private final static int CHARACTER_NAME_HEIGHT = 52;
private final static int CHARACTER_NAME_TEXT_X = 25;
private final static int CHARACTER_NAME_TEXT_Y = 35;
private final static int CHARACTER_DELETE_X = 542;
private final static int CHARACTER_DELETE_STARY_Y = 179;
private final static int CHARACTER_DELETE_SPACING = 60;
private final static int CHARACTER_DELETE_WIDTH = 30;
private final static int CHARACTER_DELETE_HEIGHT = 30;
private final static int BACK_WIDTH = 146;
private final static int BACK_HEIGHT = 40;
private final static int BACK_X = 217;
private final static int BACK_Y = 469;
private final static int NEW_WIDTH = 181;
private final static int NEW_HEIGHT = 40;
private final static int NEW_X = 395;
private final static int NEW_Y = 468;
private final static int BUTTON_DONATE_WIDTH = 119;
private final static int BUTTON_DONATE_HEIGHT = 102;
private final static int BUTTON_DONATE_X = 33;
private final static int BUTTON_DONATE_Y = 155;
private final static int BUTTON_HELP_WIDTH = 119;
private final static int BUTTON_HELP_HEIGHT = 102;
private final static int BUTTON_HELP_X = 646;
private final static int BUTTON_HELP_Y = 155;
public HUDScreenCharacterSelection(HUDManager hm, Registry rg, int x, int y, int w, int h) {
super(hm, rg, x, y, w, h);
setImage("HUD/ScreenCharacterSelection/BG");
HUDArea hudArea = null;
//title
hudArea = addArea(TITLE_X, TITLE_Y, TITLE_WIDTH, TITLE_HEIGHT, "title");
hudArea.setImage("HUD/ScreenCharacterSelection/TitleCharacterSelection");
//back
hudArea = addArea(BACK_X, BACK_Y, BACK_WIDTH, BACK_HEIGHT, "back");
hudArea.setImage("HUD/ScreenCharacterSelection/ButtonBack");
//new
hudArea = addArea(NEW_X, NEW_Y, NEW_WIDTH, NEW_HEIGHT, "new");
hudArea.setImage("HUD/ScreenCharacterSelection/ButtonNew");
//red x
//hudArea = addArea(BUTTON_RED_X_X, BUTTON_RED_X_Y, BUTTON_RED_X_WIDTH, BUTTON_RED_X_HEIGHT, "red_x");
//hudArea.setImage("HUD/ScreenCharacterSelection/Exit");
//characters
for (int i = 0; i < 4; i++) {
hudArea = addArea(CHARACTER_NAME_X, (CHARACTER_NAME_SPACING * i) + CHARACTER_NAME_STARY_Y, CHARACTER_NAME_WIDTH, CHARACTER_NAME_HEIGHT, "character_name" + (i + 1));
hudArea.setImage("HUD/ScreenCharacterSelection/BGText");
hudArea.setFont("SansSerif", Font.BOLD, 28);
hudArea.setTextXY(CHARACTER_NAME_TEXT_X, CHARACTER_NAME_TEXT_Y);
}
//characters delete
for (int i = 0; i < 4; i++) {
hudArea = addArea(CHARACTER_DELETE_X, (CHARACTER_DELETE_SPACING * i) + CHARACTER_DELETE_STARY_Y, CHARACTER_DELETE_WIDTH, CHARACTER_DELETE_HEIGHT, "character_delete" + (i + 1));
hudArea.setImage("HUD/ScreenCharacterSelection/ButtonDelete");
}
//donate
hudArea = addArea(BUTTON_DONATE_X, BUTTON_DONATE_Y, BUTTON_DONATE_WIDTH, BUTTON_DONATE_HEIGHT, "donate");
hudArea.setImage("HUD/Common/Donate");
//help
//hudArea = addArea(BUTTON_HELP_X, BUTTON_HELP_Y, BUTTON_HELP_WIDTH, BUTTON_HELP_HEIGHT, "help");
//hudArea.setImage("HUD/Common/Help");
}
@Override
public void update() {
if (shouldRender) {
HUDArea hudArea;
ArrayList players = Settings.getPlayerList();
String playerName = "";
//see if we have players
int playerCount = 0;
for (int i = 0; i < players.size(); i++) {
String p = (String)players.get(i);
if (p != null && !p.isEmpty()) {
playerCount++;
}
}
//update slots
int j = 0;
for (int i = 0; i < hudAreas.size(); i++) {
hudArea = hudAreas.get(i);
if(hudArea.getType().equals("character_name"+(j+1))) {
if(j < players.size()) {
playerName = (String)players.get(j);
if(playerName != null) {
hudArea.setText(playerName);
}
}
j++;
} else if (hudArea.getType().equals("new")) {
if(playerCount < 4) {
hudArea.setIsActive(true);
} else {
hudArea.setIsActive(false);
}
}
}
if (playerCount == 0) {
hudManager.unloadHUD(name);
hudManager.loadHUD(HUDManager.HUDType.ScreenNewCharacter);
}
}
super.update();
}
@Override
public void HUDAreaClicked(HUDArea ha) {
HUDArea hudArea = null;
for (int i = 0; i < hudAreas.size(); i++) {
hudArea = hudAreas.get(i);
if (hudArea == ha) {
if (hudArea.getType().equals("red_x")) {
hudManager.gameExit();
} else if (hudArea.getType().equals("back")) {
hudManager.unloadHUD(name);
hudManager.loadHUD(HUDManager.HUDType.ScreenMain);
} else if (hudArea.getType().equals("new")) {
hudManager.unloadHUD(name);
hudManager.loadHUD(HUDManager.HUDType.ScreenNewCharacter);
} else if (hudArea.getType().equals("character_name1")) {
loadPlayer(hudArea, 0);
} else if (hudArea.getType().equals("character_name2")) {
loadPlayer(hudArea, 1);
} else if (hudArea.getType().equals("character_name3")) {
loadPlayer(hudArea, 2);
} else if (hudArea.getType().equals("character_name4")) {
loadPlayer(hudArea, 3);
} else if (hudArea.getType().equals("character_delete1")) {
hudManager.loadAreYourSure(0);
} else if (hudArea.getType().equals("character_delete2")) {
hudManager.loadAreYourSure(1);
} else if (hudArea.getType().equals("character_delete3")) {
hudManager.loadAreYourSure(2);
} else if (hudArea.getType().equals("character_delete4")) {
hudManager.loadAreYourSure(3);
} else if (hudArea.getType().equals("donate")) {
String url = "http://www.epicinventor.com/donate.html";
try {
Desktop.getDesktop().browse(java.net.URI.create(url));
} catch (Exception e) {
}
} else if (hudArea.getType().equals("help")) {
String url = "http://www.epicinventor.com/help.html";
try {
Desktop.getDesktop().browse(java.net.URI.create(url));
} catch (Exception e) {
}
}
}
}
}
private void loadPlayer(HUDArea hudArea, int i) {
if(hudArea.getText().length() > 0) {
Settings.player = i;
hudManager.loadPlayer();
hudManager.unloadHUD(name);
hudManager.resetGame();
}
}
}