From e0faec321ab4779ba9c32b9e87ede9416f93dea1 Mon Sep 17 00:00:00 2001 From: Philipp Abraham Date: Sun, 4 Mar 2012 01:29:27 +0100 Subject: [PATCH] refactored CharacterIds into an an enum --- src/com/mojang/mojam/GameCharacter.java | 9 +++++ src/com/mojang/mojam/MojamComponent.java | 36 +++++++++---------- src/com/mojang/mojam/Options.java | 8 ++--- src/com/mojang/mojam/entity/Player.java | 19 +++++----- .../animation/PlayerFallingAnimation.java | 9 ++--- src/com/mojang/mojam/entity/mob/Mob.java | 8 +++-- src/com/mojang/mojam/gui/CharacterButton.java | 13 +++---- .../mojam/gui/CharacterSelectionMenu.java | 21 +++++------ src/com/mojang/mojam/gui/WinMenu.java | 11 +++--- src/com/mojang/mojam/level/Level.java | 19 +++++----- src/com/mojang/mojam/resources/Texts.java | 17 ++++----- src/com/mojang/mojam/screen/Art.java | 36 ++++++++----------- 12 files changed, 109 insertions(+), 97 deletions(-) create mode 100644 src/com/mojang/mojam/GameCharacter.java diff --git a/src/com/mojang/mojam/GameCharacter.java b/src/com/mojang/mojam/GameCharacter.java new file mode 100644 index 000000000..66ee83a97 --- /dev/null +++ b/src/com/mojang/mojam/GameCharacter.java @@ -0,0 +1,9 @@ +package com.mojang.mojam; + +public enum GameCharacter { + LordLard, + HerrVonSpeck, + DuchessDonut, + CountessCruller, + None +} diff --git a/src/com/mojang/mojam/MojamComponent.java b/src/com/mojang/mojam/MojamComponent.java index c606a040e..6805502ba 100644 --- a/src/com/mojang/mojam/MojamComponent.java +++ b/src/com/mojang/mojam/MojamComponent.java @@ -138,7 +138,7 @@ public class MojamComponent extends Canvas implements Runnable, private int localId; public static int localTeam; //local team is the team of the client. This can be used to check if something should be only rendered on one person's screen - public int playerCharacter; + public GameCharacter playerCharacter; private boolean sendCharacter = false; private Thread hostThread; @@ -265,7 +265,7 @@ private void initCharacters(){ if(!Options.isCharacterIDset()){ addMenu(new CharacterSelectionMenu()); } - playerCharacter = Options.getCharacterID(); + playerCharacter = GameCharacter.values()[Options.getCharacterID()]; } public void showError(String s) { @@ -273,10 +273,10 @@ public void showError(String s) { addMenu(new GuiError(s)); } - private synchronized void createLevel(String levelPath, GameMode mode, int characterID) { + private synchronized void createLevel(String levelPath, GameMode mode, GameCharacter character) { LevelInformation li = LevelInformation.getInfoForPath(levelPath); if (li != null) { - createLevel(li, mode, characterID); + createLevel(li, mode, character); return; } else if (!isMultiplayer) { showError("Missing map."); @@ -284,7 +284,7 @@ private synchronized void createLevel(String levelPath, GameMode mode, int chara showError("Missing map - Multiplayer"); } - private synchronized void createLevel(LevelInformation li, GameMode mode, int characterID) { + private synchronized void createLevel(LevelInformation li, GameMode mode, GameCharacter character) { try { //level = Level.fromFile(li); level = mode.generateLevel(li); @@ -293,21 +293,21 @@ private synchronized void createLevel(LevelInformation li, GameMode mode, int ch showError("Unable to load map."); return; } - initLevel(characterID); + initLevel(character); paused = false; } - private synchronized void initLevel(int characterID) { + private synchronized void initLevel(GameCharacter character) { if (level == null) return; // level.init(); players[0] = new Player(synchedKeys[0], synchedMouseButtons[0], level.width * Tile.WIDTH - / 2 - 16, (level.height - 5 - 1) * Tile.HEIGHT - 16, Team.Team1, characterID); + / 2 - 16, (level.height - 5 - 1) * Tile.HEIGHT - 16, Team.Team1, character); players[0].setFacing(4); level.addEntity(players[0]); if (isMultiplayer) { players[1] = new Player(synchedKeys[1], synchedMouseButtons[1], level.width - * Tile.WIDTH / 2 - 16, 7 * Tile.HEIGHT - 16, Team.Team2, characterID); + * Tile.WIDTH / 2 - 16, 7 * Tile.HEIGHT - 16, Team.Team2, character); level.addEntity(players[1]); } else { players[1] = null; @@ -548,9 +548,9 @@ private void tick() { if (level != null && level.victoryConditions != null) { if(level.victoryConditions.isVictoryConditionAchieved()) { int winner = level.victoryConditions.playerVictorious(); - int characterID = winner == players[0].getTeam() ? players[0].getCharacterID() - : players[1].getCharacterID(); - addMenu(new WinMenu(GAME_WIDTH, GAME_HEIGHT, winner, characterID)); + GameCharacter winningCharacter = winner == players[0].getTeam() ? players[0].getCharacter() + : players[1].getCharacter(); + addMenu(new WinMenu(GAME_WIDTH, GAME_HEIGHT, winner, winningCharacter)); level = null; return; } @@ -579,7 +579,7 @@ private void tick() { } if (sendCharacter) { - synchronizer.addCommand(new CharacterCommand(localId, playerCharacter)); + synchronizer.addCommand(new CharacterCommand(localId, playerCharacter.ordinal())); sendCharacter = false; } @@ -658,11 +658,11 @@ private void tick() { if (TitleMenu.level.vanilla) { packetLink.sendPacket(new StartGamePacket(TurnSynchronizer.synchedSeed, TitleMenu.level.getUniversalPath(), DifficultyList - .getDifficultyID(TitleMenu.difficulty), playerCharacter)); + .getDifficultyID(TitleMenu.difficulty), playerCharacter.ordinal())); } else { packetLink.sendPacket(new StartGamePacketCustom(TurnSynchronizer.synchedSeed, level, DifficultyList.getDifficultyID(TitleMenu.difficulty), - playerCharacter)); + playerCharacter.ordinal())); } packetLink.setPacketListener(MojamComponent.this); @@ -763,7 +763,7 @@ public void handle(int playerId, NetworkCommand packet) { if (packet instanceof CharacterCommand) { CharacterCommand charCommand = (CharacterCommand) packet; - players[charCommand.getPlayerID()].setCharacterID(charCommand.getCharacterID()); + players[charCommand.getPlayerID()].setCharacter(GameCharacter.values()[charCommand.getCharacterID()]); } if (packet instanceof PauseCommand) { @@ -787,7 +787,7 @@ public void handle(Packet packet) { TitleMenu.difficulty = DifficultyList.getDifficulties().get( sgPacker.getDifficulty()); createLevel(sgPacker.getLevelFile(), TitleMenu.defaultGameMode, - sgPacker.getOpponentCharacterID()); + GameCharacter.values()[sgPacker.getOpponentCharacterID()]); } } else if (packet instanceof TurnPacket) { synchronizer.onTurnPacket((TurnPacket) packet); @@ -800,7 +800,7 @@ public void handle(Packet packet) { sgPacker.getDifficulty()); level = sgPacker.getLevel(); paused = false; - initLevel(sgPacker.getOpponentCharacterID()); + initLevel(GameCharacter.values()[sgPacker.getOpponentCharacterID()]); } } else if (packet instanceof PingPacket) { PingPacket pp = (PingPacket)packet; diff --git a/src/com/mojang/mojam/Options.java b/src/com/mojang/mojam/Options.java index e68c34d32..c2593c1c4 100644 --- a/src/com/mojang/mojam/Options.java +++ b/src/com/mojang/mojam/Options.java @@ -36,14 +36,14 @@ public class Options { public static int getCharacterID() { String value = properties.getProperty(CHARACTER_ID); if (value == null) { - return Art.LORD_LARD; + return GameCharacter.LordLard.ordinal(); } - int id = Art.LORD_LARD; + int id = GameCharacter.LordLard.ordinal(); try { id = Integer.parseInt(value); } catch (NumberFormatException e) {} - if (id < 0 || id >= Art.NUM_CHARACTERS) { - return Art.LORD_LARD; + if (id < 0 || id >= GameCharacter.values().length-1) { + return GameCharacter.LordLard.ordinal(); } return id; } diff --git a/src/com/mojang/mojam/entity/Player.java b/src/com/mojang/mojam/entity/Player.java index 8a8af368b..b9131162b 100644 --- a/src/com/mojang/mojam/entity/Player.java +++ b/src/com/mojang/mojam/entity/Player.java @@ -2,6 +2,7 @@ import java.util.Random; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.Keys; import com.mojang.mojam.MojamComponent; import com.mojang.mojam.MouseButtons; @@ -74,7 +75,7 @@ public class Player extends Mob implements LootCollector { private int deadDelay = 0; private int nextWalkSmokeTick = 0; boolean isImmortal; - private int characterID; + private GameCharacter character; /** * Constructor @@ -85,11 +86,11 @@ public class Player extends Mob implements LootCollector { * @param y Initial y coordinate * @param team Team number */ - public Player(Keys keys, MouseButtons mouseButtons, int x, int y, int team, int characterID) { + public Player(Keys keys, MouseButtons mouseButtons, int x, int y, int team, GameCharacter character) { super(x, y, team); this.keys = keys; this.mouseButtons = mouseButtons; - this.characterID = characterID; + this.character = character; startX = x; startY = y; @@ -630,7 +631,7 @@ public void dropAllMoney() { @Override public void render(Screen screen) { - Bitmap[][] sheet = Art.getPlayer(getCharacterID()); + Bitmap[][] sheet = Art.getPlayer(getCharacter()); if(sheet == null){ return; @@ -666,12 +667,12 @@ public void render(Screen screen) { } } - public void setCharacterID(int characterID) { - this.characterID = characterID; + public void setCharacter(GameCharacter character) { + this.character = character; } - public int getCharacterID(){ - return characterID; + public GameCharacter getCharacter(){ + return character; } @Override @@ -807,7 +808,7 @@ public void hurt(Entity source, float damage) { * Revive the player. Carried items are lost, as is all the money. */ private void revive() { - Notifications.getInstance().add(MojamComponent.texts.hasDiedCharacter(getCharacterID())); + Notifications.getInstance().add(MojamComponent.texts.hasDiedCharacter(getCharacter())); carrying = null; dropAllMoney(); pos.set(startX, startY); diff --git a/src/com/mojang/mojam/entity/animation/PlayerFallingAnimation.java b/src/com/mojang/mojam/entity/animation/PlayerFallingAnimation.java index 7d5bd7274..18b4c89f2 100644 --- a/src/com/mojang/mojam/entity/animation/PlayerFallingAnimation.java +++ b/src/com/mojang/mojam/entity/animation/PlayerFallingAnimation.java @@ -1,23 +1,24 @@ package com.mojang.mojam.entity.animation; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.level.tile.HoleTile; import com.mojang.mojam.level.tile.Tile; import com.mojang.mojam.screen.Art; import com.mojang.mojam.screen.Screen; public class PlayerFallingAnimation extends Animation { - int characterID; + GameCharacter character; - public PlayerFallingAnimation(double x, double y, int characterID) { + public PlayerFallingAnimation(double x, double y, GameCharacter character) { super(x, y, 60); - this.characterID = characterID; + this.character = character; } public void render(Screen screen) { int anim = life * 8 * 2 / duration; - screen.blit(Art.getPlayer(characterID)[0][anim%8 + 8], pos.x, pos.y + Tile.HEIGHT - anim*3); + screen.blit(Art.getPlayer(character)[0][anim%8 + 8], pos.x, pos.y + Tile.HEIGHT - anim*3); screen.blit(Art.exclamation_mark, pos.x + 20, pos.y + Tile.HEIGHT - anim*3 - 5); Tile tileBelow = level.getTile((int)pos.x/Tile.WIDTH, (int)pos.y/Tile.WIDTH+1); if (tileBelow.getName() != HoleTile.NAME) tileBelow.render(screen); diff --git a/src/com/mojang/mojam/entity/mob/Mob.java b/src/com/mojang/mojam/entity/mob/Mob.java index 6b27d8aa6..76cbac75a 100644 --- a/src/com/mojang/mojam/entity/mob/Mob.java +++ b/src/com/mojang/mojam/entity/mob/Mob.java @@ -1,5 +1,6 @@ package com.mojang.mojam.entity.mob; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.MojamComponent; import com.mojang.mojam.entity.Bullet; import com.mojang.mojam.entity.Entity; @@ -390,8 +391,8 @@ public boolean fallDownHole() { level.addEntity(animation); remove(); } else { - int characterID = ((Player)this).getCharacterID(); - level.addEntity(new PlayerFallingAnimation(x*Tile.WIDTH, y*Tile.HEIGHT, characterID)); + GameCharacter character = ((Player)this).getCharacter(); + level.addEntity(new PlayerFallingAnimation(x*Tile.WIDTH, y*Tile.HEIGHT, character)); if (((Player)this).isCarrying()){ ItemFallAnimation animation = new ItemFallAnimation(x*Tile.WIDTH, (y-1)*Tile.HEIGHT, ((Player)this).carrying.getSprite()); if(((Player)this).carrying instanceof Harvester){ @@ -400,7 +401,8 @@ public boolean fallDownHole() { level.addEntity(animation); ((Player)this).carrying.remove(); } - if (characterID < 2) + // TODO add a sex attribute to Characters + if (character.ordinal() < 2) MojamComponent.soundPlayer.playSound("/sound/falling_male.wav", (float) pos.x, (float) pos.y); else MojamComponent.soundPlayer.playSound("/sound/falling_female.wav", (float) pos.x, (float) pos.y); diff --git a/src/com/mojang/mojam/gui/CharacterButton.java b/src/com/mojang/mojam/gui/CharacterButton.java index a45cfa7b6..83dbfdc0d 100644 --- a/src/com/mojang/mojam/gui/CharacterButton.java +++ b/src/com/mojang/mojam/gui/CharacterButton.java @@ -1,5 +1,6 @@ package com.mojang.mojam.gui; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.MojamComponent; import com.mojang.mojam.screen.Bitmap; import com.mojang.mojam.screen.Screen; @@ -22,14 +23,14 @@ public class CharacterButton extends Button { backgrounds[2].fill(1, 1, WIDTH - 2, HEIGHT - 2, 0xff3a210f); } - private int characterID; + private GameCharacter character; private Bitmap characterArt; private boolean selected; private boolean hasFocus; - public CharacterButton(int id, int characterID, Bitmap characterArt, int x, int y) { - super(id, MojamComponent.texts.playerNameCharacter(characterID), x, y, WIDTH, HEIGHT); - this.characterID = characterID; + public CharacterButton(int id, GameCharacter character, Bitmap characterArt, int x, int y) { + super(id, MojamComponent.texts.playerNameCharacter(character), x, y, WIDTH, HEIGHT); + this.character = character; this.characterArt = characterArt; } @@ -41,8 +42,8 @@ public boolean isSelected() { return selected; } - public int getCharacterID() { - return characterID; + public GameCharacter getCharacter() { + return character; } public void setFocus(boolean focus) { diff --git a/src/com/mojang/mojam/gui/CharacterSelectionMenu.java b/src/com/mojang/mojam/gui/CharacterSelectionMenu.java index 01b8c9310..1d64621cd 100644 --- a/src/com/mojang/mojam/gui/CharacterSelectionMenu.java +++ b/src/com/mojang/mojam/gui/CharacterSelectionMenu.java @@ -2,6 +2,7 @@ import java.awt.event.KeyEvent; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.MojamComponent; import com.mojang.mojam.MouseButtons; import com.mojang.mojam.Options; @@ -35,25 +36,25 @@ private void addButtons() { xOffset = (gameWidth - (CharacterButton.WIDTH * 2 + 20)) / 2; yOffset = (gameHeight - (CharacterButton.HEIGHT * 2 + 20)) / 2 - 20; selected = lordLard = (CharacterButton) addButton(new CharacterButton( - TitleMenu.CHARACTER_BUTTON_ID, Art.LORD_LARD, Art.getPlayer(Art.LORD_LARD)[0][6], + TitleMenu.CHARACTER_BUTTON_ID, GameCharacter.LordLard, Art.getPlayer(GameCharacter.LordLard)[0][6], xOffset, yOffset)); selected.setSelected(true); herrSpeck = (CharacterButton) addButton(new CharacterButton(TitleMenu.CHARACTER_BUTTON_ID, - Art.HERR_VON_SPECK, Art.getPlayer(Art.HERR_VON_SPECK)[0][2], xOffset + 20 + GameCharacter.HerrVonSpeck, Art.getPlayer(GameCharacter.HerrVonSpeck)[0][2], xOffset + 20 + CharacterButton.WIDTH, yOffset)); duchessDonut = (CharacterButton) addButton(new CharacterButton( - TitleMenu.CHARACTER_BUTTON_ID, Art.DUCHESS_DONUT, - Art.getPlayer(Art.DUCHESS_DONUT)[0][6], xOffset, yOffset + 20 + TitleMenu.CHARACTER_BUTTON_ID, GameCharacter.DuchessDonut, + Art.getPlayer(GameCharacter.DuchessDonut)[0][6], xOffset, yOffset + 20 + CharacterButton.HEIGHT)); countessCruller = (CharacterButton) addButton(new CharacterButton( - TitleMenu.CHARACTER_BUTTON_ID, Art.COUNTESS_CRULLER, - Art.getPlayer(Art.COUNTESS_CRULLER)[0][2], xOffset + 20 + CharacterButton.WIDTH, + TitleMenu.CHARACTER_BUTTON_ID, GameCharacter.CountessCruller, + Art.getPlayer(GameCharacter.CountessCruller)[0][2], xOffset + 20 + CharacterButton.WIDTH, yOffset + 20 + CharacterButton.HEIGHT)); if (Options.isCharacterIDset()) { selected.setSelected(false); for (ClickableComponent button : buttons) { CharacterButton charButton = (CharacterButton) button; - if (charButton.getCharacterID() == Options.getCharacterID()) { + if (charButton.getCharacter().ordinal() == Options.getCharacterID()) { selected = charButton; break; } @@ -82,7 +83,7 @@ public void render(Screen screen) { MojamComponent.GAME_WIDTH / 2, yOffset - 24, Font.Align.CENTERED); if (focus == back || focus == select) { int frame = (walkTime / 4 % 6 + 6) % 6; - screen.blit(Art.getPlayer(selected.getCharacterID())[frame][(walkTime / 32) % 8], + screen.blit(Art.getPlayer(selected.getCharacter())[frame][(walkTime / 32) % 8], MojamComponent.GAME_WIDTH / 2 - 16, MojamComponent.GAME_HEIGHT / 2 - 35); } } @@ -94,9 +95,9 @@ public void buttonPressed(ClickableComponent button) { selected = (CharacterButton) button; selected.setSelected(true); } else if (button == select) { - Options.set(Options.CHARACTER_ID, selected.getCharacterID()); + Options.set(Options.CHARACTER_ID, selected.getCharacter().ordinal()); Options.saveProperties(); - MojamComponent.instance.playerCharacter = selected.getCharacterID(); + MojamComponent.instance.playerCharacter = selected.getCharacter(); } } diff --git a/src/com/mojang/mojam/gui/WinMenu.java b/src/com/mojang/mojam/gui/WinMenu.java index 7348bbe1c..4027acd59 100644 --- a/src/com/mojang/mojam/gui/WinMenu.java +++ b/src/com/mojang/mojam/gui/WinMenu.java @@ -2,6 +2,7 @@ import java.awt.event.KeyEvent; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.MojamComponent; import com.mojang.mojam.screen.Art; import com.mojang.mojam.screen.Screen; @@ -9,13 +10,13 @@ public class WinMenu extends GuiMenu { private final int gameWidth; private int winningPlayer; - private int characterID; + private GameCharacter character; - public WinMenu(int gameWidth, int gameHeight, int winningPlayer, int characterID) { + public WinMenu(int gameWidth, int gameHeight, int winningPlayer, GameCharacter character) { super(); this.winningPlayer = winningPlayer; this.gameWidth = gameWidth; - this.characterID = characterID; + this.character = character; addButton(new Button(TitleMenu.RETURN_TO_TITLESCREEN, "Ok", (gameWidth - 128) / 2, 200)); } @@ -25,11 +26,11 @@ public void render(Screen screen) { screen.clear(0); screen.blit(Art.gameOverScreen, 0, 0); - Font.defaultFont().draw(screen, MojamComponent.texts.winCharacter(winningPlayer, characterID), 180, 160); + Font.defaultFont().draw(screen, MojamComponent.texts.winCharacter(winningPlayer, character), 180, 160); super.render(screen); - screen.blit(Art.getPlayer(characterID)[0][6], (gameWidth - 128) / 2 - 40, 190 + selectedItem * 40); + screen.blit(Art.getPlayer(character)[0][6], (gameWidth - 128) / 2 - 40, 190 + selectedItem * 40); } @Override diff --git a/src/com/mojang/mojam/level/Level.java b/src/com/mojang/mojam/level/Level.java index 77126458b..18443e7ff 100644 --- a/src/com/mojang/mojam/level/Level.java +++ b/src/com/mojang/mojam/level/Level.java @@ -6,6 +6,7 @@ import java.util.Set; import java.util.TreeSet; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.MojamComponent; import com.mojang.mojam.entity.Entity; import com.mojang.mojam.entity.Player; @@ -320,14 +321,14 @@ private void renderTilesAndBases(Screen screen, int x0, int y0, int x1, int y1){ int xt = x - (width / 2) + 4; int yt = y - 4; if (xt >= 0 && yt >= 0 && xt < 7 && yt < 4 && (xt != 3 || yt < 3)) { - screen.blit(Art.getPlayerBase(getPlayerCharacterID(1))[xt][yt], x * Tile.WIDTH, y + screen.blit(Art.getPlayerBase(getPlayerCharacter(1))[xt][yt], x * Tile.WIDTH, y * Tile.HEIGHT); continue; } yt = y - (height - 8); if (xt >= 0 && yt >= 0 && xt < 7 && yt < 4 && (xt != 3 || yt > 0)) { - screen.blit(Art.getPlayerBase(getPlayerCharacterID(0))[xt][yt], x * Tile.WIDTH, y * Tile.HEIGHT); + screen.blit(Art.getPlayerBase(getPlayerCharacter(0))[xt][yt], x * Tile.WIDTH, y * Tile.HEIGHT); if ((xt == 0 || xt == 1 || xt == 5 || xt == 6) && yt == 0) { screen.blit(Art.shadow_north, x * Tile.WIDTH, y * Tile.HEIGHT); } @@ -347,8 +348,8 @@ private void renderTilesAndBases(Screen screen, int x0, int y0, int x1, int y1){ } } - private int getPlayerCharacterID(int playerID){ - return MojamComponent.instance.players[playerID].getCharacterID(); + private GameCharacter getPlayerCharacter(int playerID){ + return MojamComponent.instance.players[playerID].getCharacter(); } private void renderTopOfWalls(Screen screen, int x0, int y0, int x1, int y1){ @@ -568,13 +569,13 @@ private Bitmap calculateSmallMapDisplay() { private void renderPlayerScores(Screen screen){ - String player1score = MojamComponent.texts.scoreCharacter(getPlayerCharacterID(0), player1Score * 100 / TARGET_SCORE); + String player1score = MojamComponent.texts.scoreCharacter(getPlayerCharacter(0), player1Score * 100 / TARGET_SCORE); Font.defaultFont().draw(screen, player1score, 280-player1score.length()*10, screen.h - 20); //adjust so it fits in the box - screen.blit(Art.getPlayer(getPlayerCharacterID(0))[0][2], 262, screen.h-42); + screen.blit(Art.getPlayer(getPlayerCharacter(0))[0][2], 262, screen.h-42); - if (MojamComponent.instance.players[1] != null && getPlayerCharacterID(1) != Art.NO_OPPONENT) { - Font.defaultFont().draw(screen, MojamComponent.texts.scoreCharacter(getPlayerCharacterID(1), player2Score * 100 / TARGET_SCORE), 56, screen.h - 36); - screen.blit(Art.getPlayer(getPlayerCharacterID(1))[0][6], 19, screen.h-42); + if (MojamComponent.instance.players[1] != null && getPlayerCharacter(1) != GameCharacter.None) { + Font.defaultFont().draw(screen, MojamComponent.texts.scoreCharacter(getPlayerCharacter(1), player2Score * 100 / TARGET_SCORE), 56, screen.h - 36); + screen.blit(Art.getPlayer(getPlayerCharacter(1))[0][6], 19, screen.h-42); } } diff --git a/src/com/mojang/mojam/resources/Texts.java b/src/com/mojang/mojam/resources/Texts.java index 196f4eada..1d15a517a 100644 --- a/src/com/mojang/mojam/resources/Texts.java +++ b/src/com/mojang/mojam/resources/Texts.java @@ -8,6 +8,7 @@ import java.util.Locale; import java.util.Properties; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.entity.mob.Team; public class Texts { @@ -45,26 +46,26 @@ public String getStatic(String property) { } } - public String winCharacter(int team, int characterID) { + public String winCharacter(int team, GameCharacter character) { String winMessage; if (team == Team.Team1) { winMessage = getStatic("gameplay.player1Win"); } else { winMessage = getStatic("gameplay.player2Win"); } - return MessageFormat.format(winMessage, playerNameCharacter(characterID)); + return MessageFormat.format(winMessage, playerNameCharacter(character)); } - public String playerNameCharacter(int characterID) { - return getStatic("gameplay.player" + (characterID + 1) + "Name"); + public String playerNameCharacter(GameCharacter character) { + return getStatic("gameplay.player" + (character.ordinal() + 1) + "Name"); } - public String hasDiedCharacter(int characterID) { - return MessageFormat.format(getStatic("player.hasDied"), playerNameCharacter(characterID)); + public String hasDiedCharacter(GameCharacter character) { + return MessageFormat.format(getStatic("player.hasDied"), playerNameCharacter(character)); } - public String scoreCharacter(int characterID, int score) { - return MessageFormat.format(getStatic("player.score"), playerNameCharacter(characterID), score); + public String scoreCharacter(GameCharacter character, int score) { + return MessageFormat.format(getStatic("player.score"), playerNameCharacter(character), score); } public String cost(int cost) { diff --git a/src/com/mojang/mojam/screen/Art.java b/src/com/mojang/mojam/screen/Art.java index 30bc83efd..070ff59ae 100644 --- a/src/com/mojang/mojam/screen/Art.java +++ b/src/com/mojang/mojam/screen/Art.java @@ -7,6 +7,7 @@ import javax.imageio.ImageIO; +import com.mojang.mojam.GameCharacter; import com.mojang.mojam.MojamComponent; /** @@ -14,13 +15,6 @@ */ public class Art { - public static final int NO_OPPONENT = -1; - public static final int LORD_LARD = 0; - public static final int HERR_VON_SPECK = 1; - public static final int DUCHESS_DONUT = 2; - public static final int COUNTESS_CRULLER = 3; - public static final int NUM_CHARACTERS = 4; - public static Bitmap[][] floorTiles = cut("/art/map/floortiles.png", 32, 32); public static Bitmap shadow_north = load("/art/shadows/shadow_north.png"); public static Bitmap shadow_north_east = load("/art/shadows/shadow_north_east.png"); @@ -46,17 +40,17 @@ public class Art { private static Bitmap[][] duchessDonut = cut("/art/player/duchess_donut_sheet.png", 32, 32); private static Bitmap[][] countessCruller = cut("/art/player/countess_cruller_sheet.png", 32, 32); - public static Bitmap[][] getPlayer(int characterID) { - switch (characterID) { - case NO_OPPONENT: + public static Bitmap[][] getPlayer(GameCharacter character) { + switch (character) { + case None: return null; - case LORD_LARD: + case LordLard: return lordLard; - case HERR_VON_SPECK: + case HerrVonSpeck: return herrSpeck; - case DUCHESS_DONUT: + case DuchessDonut: return duchessDonut; - case COUNTESS_CRULLER: + case CountessCruller: return countessCruller; default: return lordLard; @@ -76,17 +70,17 @@ public static Bitmap[][] getLocalPlayerArt() { private static Bitmap[][] startCountessCruller = cut("/art/player/start_cruller.png", 32, 32); private static Bitmap[][] startNoOpponent = cut("/art/player/start_no_opponent.png", 32, 32); - public static Bitmap[][] getPlayerBase(int characterID) { - switch (characterID) { - case NO_OPPONENT: + public static Bitmap[][] getPlayerBase(GameCharacter character) { + switch (character) { + case None: return startNoOpponent; - case LORD_LARD: + case LordLard: return startLordLard; - case HERR_VON_SPECK: + case HerrVonSpeck: return startHerrSpeck; - case DUCHESS_DONUT: + case DuchessDonut: return startDuchessDonut; - case COUNTESS_CRULLER: + case CountessCruller: return startCountessCruller; default: return startLordLard;