package vooga.fighter.view; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.geom.Point2D; import java.util.Observable; import util.Text; import vooga.fighter.controller.gameinformation.PlayerStatus; /** * Displays the Player's name, score, and health as text in three rows. * * @author Wayne You, Bill Muensterman * */ public class HUDPlayerScoreAndHealth extends HUDPlayerValue { private Text myPlayerHealth = new Text(""); private Color myValueColor; @Override public void update(Observable o, Object arg) { PlayerStatus newStatus = null; try { newStatus = (PlayerStatus) getObservedValue(o); } catch (SecurityException e) { } catch (IllegalArgumentException e) { System.err .println("Expected PlayerStatus for HUDPlayerScoreAndHealth"); } catch (NoSuchFieldException e) { System.err.println(myFieldName + " is not a member of the class observed."); } catch (IllegalAccessException e) { System.err.println("Illegal access in HUDPlayerScoreAndHealth."); } if (newStatus == null) return; myPlayerNameText.setText(newStatus.getPlayerName()); myPlayerValue.setText("Score: " + newStatus.getScore()); myPlayerHealth.setText("Health: " + newStatus.getHealth().getHealth()); HUDPlayerValueColor valueColor = new HUDPlayerValueColor(); myValueColor = valueColor.setValueColor(100, newStatus.getHealth() .getHealth(), Color.green, Color.red); } @Override public void paint(Graphics2D pen, Point2D center, Dimension size) { super.paint(pen, center, size); center.setLocation(center.getX(), center.getY() + HUDElement.DEFAULT_TEXT_HEIGHT); myPlayerHealth.paint(pen, center, myValueColor); } }