import java.io.*;
import java.util.*;
public class Character{
//THE INSTANCES
private Random r=new Random();
public int maxHP,hP,maxMP,mP,maxAP,aP;
public int str,dex,intell;
public int level, exp, gold;
public ArrayList<Items> inventory;
public ArrayList<Equips> Equipment;
public String name;
public ArrayList<Abilities> ability;
public ArrayList<Spells> spells;
public double armor,crit,evasion,accuracy;
public int minDamage,maxDamage;
//THE GETS
public int getHP(){
return hP;
}
public int getMP(){
return mP;
}
public int getAP(){
return aP;
}
public String getName(){
return name;
}
public int getLevel(){
return level;
}
public ArrayList<Items> getInventory(){
return inventory;
}
public ArrayList<Equips> getEquipment(){
return inventory;
}
public int getStr(){
return str;
}
public int getDex(){
return dex;
}
public int getIntell(){
return intell;
}
public int getCharacterMinDamage(){
return minDamage;
}
public int getCharacterMaxDamage(){
return maxDamage;
}
public int getGold(){
return gold;
}
public double getArmorStat(){
return armor;
}
public double getCritStat(){
return crit;
}
public double getEvasionStat(){
return evasion;
}
//THE SETS
public void setHP(int loss){
if (hP <= loss)
hP = 0;
else
hP=hP-loss;
}
public void heal(int gain){
if (hP >= maxHP)
hP=maxHP;
else
hP=hP+gain;
}
public void fullHeal(){
hP=maxHP;
}
public void setMP(int loss){
mP=mP-loss;
}
public void setAP(int loss){
aP=aP-loss;
}
public void setName(String newName){
name=newName;
}
public void addInventory(Items i){
inventory.add(i);
}
public void setStr(int gain){
str = str + gain;
}
public void setDex(int gain){
dex = dex + gain;
}
public void setIntell(int gain){
intell = intell + gain;
}
public void levelUp(){
level=level+1;
exp = 0;
}
public void gainGold(int gain){
gold = gold + gain;
}
public boolean loseGold(int loss){
if (gold >= loss){
gold = gold - loss;
return false;
}
return true;
}
//THE METHODS
public Character(){
maxHP=1;
hP=maxHP;
maxMP=0;
mP=maxMP;
maxAP=0;
aP=maxAP;
str=10;
dex=10;
intell=10;
inventory = new ArrayList<Items>();
ability = new ArrayList<Abilities>();
spells = new ArrayList<Spells>();
armor = 0;
crit=0;
evasion=0;
name = "Derp";
level = 1;
exp = 0;
gold = 0;
minDamage=0;
maxDamage=0;
}
public void attack(Character c){
int damage1 = maxDamage-minDamage+1;
int damage2 = r.nextInt()%damage;
int damage3 = minDamage + i;
if (r.nextInt(1/c.getEvasionStat())==0 || r.nextInt(1/accuracy==0)){
System.out.println(c.getName() + "missed!");
}
else{
int b = (int)(Math.round(damage3*(1-c.getArmorStat())));
c.setHP(b);
System.out.print(name + " hit " + c.getName() + " for " +b+ " damage");
}
}
}