Portfolio Code | Clement Colmerauer
Repositories
Site
Kata refactoring
Code
Commits
Branches
Tags
Search
Tree:
2fce22c
Branches
Tags
master
Kata refactoring
src
main
java
re
forestier
edu
rpg
Player.java
corrigé
Clement COLMERAUER
commited
2fce22c
at 2024-10-07 10:30:57
Player.java
Blame
History
Raw
package re.forestier.edu.rpg; import java.util.Random; import java.util.ArrayList; import java.util.HashMap; public class Player { private static final Integer[] xpForlevel = {0,10,27,57,111}; //Level = i+1 //TODO : add level private String playerName; private String Avatar_name; private String AvatarClass; private Integer money; private Float __real_money__; private int level; private int healthpoints; private int currenthealthpoints; private int xp; public HashMap<String, Integer> abilities; //Ability = stat public ArrayList<String> inventory; public Player(String playerName, String avatar_name, String avatarClass, int money, ArrayList<String> inventory) { if (!avatarClass.equals("ARCHER") && !avatarClass.equals("ADVENTURER") && !avatarClass.equals("DWARF")) { return; } this.playerName = playerName; Avatar_name = avatar_name; AvatarClass = avatarClass; this.money = Integer.valueOf(money); this.inventory = inventory; this.level = 1; this.xp = 0; this.abilities = UpdatePlayer.abilitiesPerTypeAndLevel().get(AvatarClass).get(1); } public String getPlayerName() { return this.playerName; } public String getAvatarName() { return this.Avatar_name; } public Integer getMoney() { return this.money; } public int getLevel() { return this.level; } public int getHealthPoints() { return this.healthpoints; } public void setHealthPoints(int hp) { this.healthpoints = hp; } public int getCurrentHealthPoints() { return this.currenthealthpoints; } public void setCurrentHealthPoints(int hp) { this.currenthealthpoints = hp; } public int getXp() { return this.xp; } public void setXp(int xp) { this.xp = xp; } public String getAvatarClass () { return AvatarClass; } public void addXp(int xp) { int ancientLevel = this.level; this.xp += xp; int i = 0; while(i < xpForlevel.length && this.xp >= xpForlevel[i]) { i++; } this.level = i; if (this.level != ancientLevel) { // Player leveled-up! // Give a random object ; Random random = new Random(); this.inventory.add(UpdatePlayer.objectList[random.nextInt(UpdatePlayer.objectList.length)]); // Add/upgrade abilities to player HashMap<String, Integer> abilities = UpdatePlayer.abilitiesPerTypeAndLevel().get(this.getAvatarClass()).get(this.level); abilities.forEach((ability, level) -> { this.abilities.put(ability, abilities.get(ability)); }); } } public void removeMoney(int amount) throws IllegalArgumentException { if (money - amount < 0) { throw new IllegalArgumentException("Player can't have a negative money!"); } money = Integer.parseInt(money.toString()) - amount; } public void addMoney(int amount) { money = money + amount; } }