/*
* AQP Project
* http://http://code.google.com/p/aqp-project/
* Alexandre Gomez - Clément Troesch - Fabrice Latterner
*/
package com.aqpproject.worldmodel.game.entity;
import com.aqpproject.game.Singleton;
import com.aqpproject.tools.Vector2D;
import java.util.ArrayList;
import java.util.HashMap;
/**
*
* @author Clément
*/
public class WERaceEnd extends WorldEntity {
public WERaceEnd(int nbPlayers) {
super("RaceEnd", "RaceEnd", new Vector2D(), 0, 1, true, true);
Singleton.getVisualisation().getActor("RaceEnd").setAlpha(0);
m_playersList = new ArrayList<String>();
m_timeList = new ArrayList<Long>();
m_txtList = new HashMap<String, WEAlphaTextButton>();
m_activated = false;
Vector2D size = Singleton.getVisualisation().getSpriteSize(m_spriteName);
Vector2D screen = Singleton.getVisualisation().getResolution();
m_position.x = 0;
m_position.y = screen.y / 2 - size.y / 2;
m_position.x = screen.x / 2 - size.x / 2;
Singleton.getVisualisation().updateActor("RaceEnd", m_position.x, m_position.y, 0);
m_nbPlayers = nbPlayers;
for (int i = 1; i <= m_nbPlayers; i++) {
m_txtList.put("position" + i, new WEAlphaTextButton("position" + i, m_position.x + 32, m_position.y + size.y - 32 * i, "", "ar30whi"));
m_txtList.put("playerName" + i, new WEAlphaTextButton("playerName" + i, m_position.x + 64, m_position.y + size.y - 32 * i, "", "ar30whi"));
m_txtList.put("playerTime" + i, new WEAlphaTextButton("playerTime" + i, m_position.x + 264, m_position.y + size.y - 32 * i, "", "ar30whi"));
}
m_txtList.put("quitRace", new WEAlphaTextButton("quitRace", m_position.x + 120, m_position.y + 32, "", "ar30whi"));
}
@Override
public void destroy() {
for (WEAlphaTextButton tb : m_txtList.values()) {
tb.destroy();
}
super.destroy();
}
public void addPosition(String playerName, long time) {
m_playersList.add(playerName);
m_timeList.add(time);
}
public void update() {
if (m_activated) {
Singleton.getVisualisation().getActor("RaceEnd").setAlpha(1);
m_txtList.get("quitRace").updateText("Press enter to quit");
} else {
Singleton.getVisualisation().getActor("RaceEnd").setAlpha(0);
m_txtList.get("quitRace").updateText("");
}
for (int i = 1; i <= Math.min(m_playersList.size(), m_nbPlayers); i++) {
m_txtList.get("position" + i).updateText(String.valueOf(i));
m_txtList.get("playerName" + i).updateText(m_playersList.get(i - 1));
int mn = (int) (m_timeList.get(i - 1) / 60000);
String minutes = String.valueOf(mn);
if (mn < 10) {
minutes = '0' + minutes;
}
int sec = (int) (m_timeList.get(i - 1) - 60000 * mn) / 1000;
String seconds = String.valueOf(sec);
if (sec < 10) {
seconds = '0' + seconds;
}
m_txtList.get("playerTime" + i).updateText(minutes + ":" + seconds);
}
}
public void setActivated(boolean b) {
m_activated = b;
}
public void setPlayerList(ArrayList<String> pl) {
m_playersList = pl;
}
public void setTimeList(ArrayList<Long> tl) {
m_timeList = tl;
}
private HashMap<String, WEAlphaTextButton> m_txtList;
private ArrayList<String> m_playersList;
private ArrayList<Long> m_timeList;
private int m_nbPlayers;
private boolean m_activated;
}