diff --git a/core/src/com/coldwild/dodginghero/Resources.java b/core/src/com/coldwild/dodginghero/Resources.java index 2de3ddc..e89af48 100644 --- a/core/src/com/coldwild/dodginghero/Resources.java +++ b/core/src/com/coldwild/dodginghero/Resources.java @@ -5,6 +5,8 @@ import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.coldwild.dodginghero.logic.objects.Character; +import com.coldwild.dodginghero.logic.objects.CharacterRecord; import java.util.HashMap; @@ -28,6 +30,7 @@ public class Resources { public Sprite player; public HashMap enemySprites; + public HashMap playerSprites; public TextureRegion base; public TextureRegion warning; @@ -54,6 +57,13 @@ public Resources() enemySprites.put(ENEMY_RANDOM, gameSprites.createSprite("slime")); enemySprites.put(ENEMY_UNIVERSAL, gameSprites.createSprite("skeleton")); + playerSprites = new HashMap(); + playerSprites.put(CharacterRecord.CHAR_NAME_HUMAN, gameSprites.createSprite("player")); + playerSprites.put(CharacterRecord.CHAR_NAME_SPIDER, gameSprites.createSprite("spider")); + playerSprites.put(CharacterRecord.CHAR_NAME_SKELETON, gameSprites.createSprite("skeleton")); + playerSprites.put(CharacterRecord.CHAR_NAME_GHOST, gameSprites.createSprite("ghost")); + playerSprites.put(CharacterRecord.CHAR_NAME_SLIME, gameSprites.createSprite("slime")); + base = gameSprites.findRegion("base"); warning = gameSprites.findRegion("warning"); diff --git a/core/src/com/coldwild/dodginghero/logic/GameProgress.java b/core/src/com/coldwild/dodginghero/logic/GameProgress.java index 86e27bf..ba0d5cb 100644 --- a/core/src/com/coldwild/dodginghero/logic/GameProgress.java +++ b/core/src/com/coldwild/dodginghero/logic/GameProgress.java @@ -13,6 +13,7 @@ public class GameProgress { public static int maxPlayerLives = 3; public static int playerDamage = 1; public static int currentLevel = 0; + public static int currentCharacter = 0; private static final String PROGRESS_SAVE_NAME = "progress"; diff --git a/core/src/com/coldwild/dodginghero/logic/objects/CharacterRecord.java b/core/src/com/coldwild/dodginghero/logic/objects/CharacterRecord.java new file mode 100644 index 0000000..aa1cbf4 --- /dev/null +++ b/core/src/com/coldwild/dodginghero/logic/objects/CharacterRecord.java @@ -0,0 +1,38 @@ +package com.coldwild.dodginghero.logic.objects; + +/** + * Created by comrad_gremlin on 12/15/2016. + */ + +public class CharacterRecord { + + public final int levelsForHpUpgrade; + public final int levelsForHpRegenUpgrade; + public final int levelsForAttackUpgrade; + public final int levelsForBonusSpawnUpgrade; + + public final String name; + + public CharacterRecord(int lvlHp, int lvlRegen, int lvlAttack, int lvlBonus, String _name) + { + levelsForHpUpgrade = lvlHp; + levelsForHpRegenUpgrade = lvlRegen; + levelsForAttackUpgrade = lvlAttack; + levelsForBonusSpawnUpgrade = lvlBonus; + name = _name; + } + + public static String CHAR_NAME_HUMAN = "Human"; + public static String CHAR_NAME_SPIDER = "Spider"; + public static String CHAR_NAME_SKELETON = "Mr.Skeletal"; + public static String CHAR_NAME_GHOST = "Ghost"; + public static String CHAR_NAME_SLIME = "Slimey"; + + public static CharacterRecord CHARACTERS[] = { + new CharacterRecord(2, 2, 4, 4, CHAR_NAME_HUMAN), + new CharacterRecord(3, 6, 3, 3, CHAR_NAME_SPIDER), + new CharacterRecord(6, 12, 1, 3, CHAR_NAME_SKELETON), + new CharacterRecord(4, 4, 2, 4, CHAR_NAME_GHOST), + new CharacterRecord(3, 3, 4, 1, CHAR_NAME_SLIME) + }; +} diff --git a/core/src/com/coldwild/dodginghero/logic/objects/Player.java b/core/src/com/coldwild/dodginghero/logic/objects/Player.java index 97153e7..87a380b 100644 --- a/core/src/com/coldwild/dodginghero/logic/objects/Player.java +++ b/core/src/com/coldwild/dodginghero/logic/objects/Player.java @@ -25,7 +25,8 @@ public Player(int fx, int fy, Resources res, int _lives) super(_lives); fieldX = fx; fieldY = fy; - set(res.player); + //set(res.player); + set(res.playerSprites.get(CharacterRecord.CHARACTERS[GameProgress.currentCharacter].name)); max_lives = GameProgress.maxPlayerLives; } diff --git a/core/src/com/coldwild/dodginghero/screens/CharacterSelectionScreen.java b/core/src/com/coldwild/dodginghero/screens/CharacterSelectionScreen.java index 29ef413..175b83f 100644 --- a/core/src/com/coldwild/dodginghero/screens/CharacterSelectionScreen.java +++ b/core/src/com/coldwild/dodginghero/screens/CharacterSelectionScreen.java @@ -10,6 +10,8 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.viewport.FitViewport; import com.coldwild.dodginghero.DodgingHero; +import com.coldwild.dodginghero.logic.GameProgress; +import com.coldwild.dodginghero.logic.objects.CharacterRecord; /** * Created by comrad_gremlin on 12/12/2016. @@ -18,7 +20,6 @@ public class CharacterSelectionScreen extends DefaultScreen { Stage uiStage; - int currentCharacter; void prepareUi() { @@ -40,24 +41,54 @@ public void touchUp (InputEvent event, float x, float y, int pointer, int button uiStage.addActor(startButton); - Image heroSprite = new Image(game.res.player); + Image heroSprite = new Image( + game.res.playerSprites.get(CharacterRecord.CHARACTERS[GameProgress.currentCharacter].name) + ); + heroSprite.setPosition((uiStage.getWidth() - heroSprite.getWidth()) / 2, (uiStage.getHeight() - heroSprite.getHeight()) / 2); uiStage.addActor(heroSprite); TextButton nextButton = new TextButton(">>>", buttonStyle); + nextButton.addListener(new ClickListener() + { + @Override + public void touchUp (InputEvent event, float x, float y, int pointer, int button) { + GameProgress.currentCharacter += 1; + if (GameProgress.currentCharacter == CharacterRecord.CHARACTERS.length) + { + GameProgress.currentCharacter = 0; + } + + uiStage.clear(); + prepareUi(); + } + }); nextButton.setPosition(uiStage.getWidth() * 5 / 6 - nextButton.getWidth() /2, uiStage.getHeight() / 2); uiStage.addActor(nextButton); TextButton prevButton = new TextButton("<<<", buttonStyle); + prevButton.addListener(new ClickListener() + { + @Override + public void touchUp (InputEvent event, float x, float y, int pointer, int button) { + GameProgress.currentCharacter -= 1; + if (GameProgress.currentCharacter < 0) + { + GameProgress.currentCharacter = CharacterRecord.CHARACTERS.length - 1; + } + + uiStage.clear(); + prepareUi(); + } + }); prevButton.setPosition(uiStage.getWidth() / 6, uiStage.getHeight() / 2); uiStage.addActor(prevButton); } public CharacterSelectionScreen(DodgingHero _game) { super(_game); - currentCharacter = 0; FitViewport viewport = new FitViewport(160, 120); uiStage = new Stage(viewport);