Portfolio Code | Clement Colmerauer
Repositories
Site
Kata refactoring
Code
Commits
Branches
Tags
Search
Tree:
4531fec
Branches
Tags
master
Kata refactoring
src
main
java
re
forestier
edu
rpg
Player.java
integration entier naturel et ajout surcharge opérateur (ne marche pas)
Clement COLMERAUER
commited
4531fec
at 2024-10-07 12:16:36
Player.java
Blame
History
Raw
package re.forestier.edu.rpg; import java.util.Random; import java.util.ArrayList; import java.util.HashMap; import re.forestier.edu.lib.Natural; 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 Natural money; private Natural level; private Natural healthpoints; private Natural currenthealthpoints; private Natural 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 = Natural.valueOf(money); this.inventory = inventory; this.level = Natural.valueOf(1); this.xp = Natural.valueOf(0); this.abilities = UpdatePlayer.abilitiesPerTypeAndLevel().get(AvatarClass).get(1); } public String getPlayerName() { return this.playerName; } public String getAvatarName() { return this.Avatar_name; } public Natural getMoney() { return this.money; } public Natural getLevel() { return this.level; } public Natural getHealthPoints() { return this.healthpoints; } public void setHealthPoints(Natural hp) { this.healthpoints = hp.clone(); } public Natural getCurrentHealthPoints() { return this.currenthealthpoints.clone(); } public void setCurrentHealthPoints(int hp) { this.currenthealthpoints = hp.clone(); } public Natural getXp() { return this.xp; } public void setXp(Natural xp) { this.xp = xp; } public String getAvatarClass () { return AvatarClass; } public void addXp(Natural xp) { Natural ancientLevel = this.level; this.xp.add(xp); int i = 0; while(i < xpForlevel.length && this.xp >= xpForlevel[i]) { i++; } this.level = Natural.valueof(i); if (this.level.compareTo(ancientLevel) == -1) { // 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(Natural amount) { if (money - amount < 0) { throw new IllegalArgumentException("Player can't have a negative money!"); } money.remove(amount); } public void addMoney(Natural amount) { money.add(amount); } }