// Processed by NMI's Java Code Viewer 4.8.2 © 1997-2000 B. Lemaire // Website: http://njcv.htmlplanet.com E-mail: info@njcv.htmlplanet.com // Copy registered to Evaluation Copy // Source File Name: ScorePanel.java import java.awt.*; import java.io.File; class ScorePanel extends Panel { private Image arrow; private Toolkit toolkit; private int numberOfPlayers; private TurnTimer turnTimer; private Score playerScore[]; private PlayerName nickLabels[]; private Font font; Frame target; public ScorePanel(Frame frame) { toolkit = getToolkit(); font = new Font("Dialog", 1, 14); target = frame; setLayout(null); resize(300, 45); setBackground(Color.cyan); arrow = toolkit.getImage("images" + File.separator + "playerArrow.gif"); } public void newGameStarted() { updateScorePanel(); turnTimer = new TurnTimer(this); turnTimer.stop(); turnTimer.move(160, 10); turnTimer.hide(); add(turnTimer); } public void updateScorePanel() { numberOfPlayers = ClientData.clientsCurrentlyConnected; resize(size().width, 20 + numberOfPlayers * 25 + (numberOfPlayers - 1) * 5); playerScore = new Score[numberOfPlayers]; nickLabels = new PlayerName[numberOfPlayers]; for(int i = 0; i < numberOfPlayers; i++) { playerScore[i] = new Score(ClientData.playersScores[ClientData.playersOrder[i]]); playerScore[i].move(110, 10 + i * 30); add(playerScore[i]); playerScore[i].repaint(); nickLabels[i] = new PlayerName(ClientData.nicks[ClientData.playersOrder[i]], arrow); nickLabels[i].move(5, 10 + i * 30); add(nickLabels[i]); nickLabels[i].repaint(); } getParent().layout(); } public void clearScorePanel() { for(int i = 0; i < numberOfPlayers; i++) { remove(nickLabels[i]); remove(playerScore[i]); nickLabels[i] = null; playerScore[i] = null; } } public void updateScore(int i) { for(int j = 0; j < C.MAX_NUM_OF_PLAYERS; j++) if(ClientData.playersOrder[j] == i) { playerScore[j].scoreChanged(ClientData.playersScores[i]); return; } } public void paintNicksInBlack() { for(int i = 0; i < numberOfPlayers; i++) if(nickLabels[i].getMyTurn()) nickLabels[i].turn(false); } public void placeWinner(int i) { paintNicksInBlack(); turnTimer.changeBehavior(TurnTimer.WINNER); for(int j = 0; j < C.MAX_NUM_OF_PLAYERS; j++) if(ClientData.playersOrder[j] == i) { turnTimer.move(160, 10 + j * 30); turnTimer.show(); nickLabels[j].turn(true); return; } } public void placeTimer(int i, boolean flag) { if(turnTimer.behavior == TurnTimer.WINNER) turnTimer.changeBehavior(TurnTimer.TIMER); if(ClientData.isTimeLimitUsed) { turnTimer.index = i; turnTimer.hide(); } paintNicksInBlack(); for(int j = 0; j < C.MAX_NUM_OF_PLAYERS; j++) if(ClientData.playersOrder[j] == i) { if(ClientData.isTimeLimitUsed) { turnTimer.move(160, 10 + j * 30); if(flag) turnTimer.restart(); turnTimer.show(); } nickLabels[j].turn(true); return; } } public int getCurrentIndex() { return turnTimer.index; } public void hideTimer() { turnTimer.hide(); } public void eraseTimer() { if(turnTimer != null) { turnTimer.stop(); turnTimer.hide(); } } public void newTurn(int i) { } public boolean handleEvent(Event event) { if(event.target == turnTimer && event.id == 1001) { target.handleEvent(new Event(this, 1001, null)); return true; } else { return false; } } }