Portfolio Code | Clement Colmerauer
Repositories
Site
Kata refactoring
Code
Commits
Branches
Tags
Search
Tree:
4e7a9b1
Branches
Tags
master
Kata refactoring
src
main
java
re
forestier
edu
rpg
Player.java
Revert "integration entier naturel et ajout surcharge opérateur (ne marche pas)"
Clement COLMERAUER
commited
4e7a9b1
at 2024-10-21 10:31:52
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; } }