//Program: Stat Header
//Author: Jeffery Wright
//Date: 2014/12/21
//Description: Defines behavior for a Chao's stats.

#ifndef Stat_h
#define Stat_h

#include <iostream>
#include <cstdlib>
#include <fstream>

using namespace std;

const static char RANK_LETTERS[6] = {'E', 'D', 'C', 'B', 'A', 'S'};

class Stat {
	private:
	int value;
	int rank[3];
	 int level;
	 int experience;
	
	public:
	Stat() ;
	Stat(Stat parent1, Stat parent2) ;
	Stat(ifstream &out) ;
	int getValue() {return value;}
	int getRank(int i){return rank[i];}
	int getLevel() {return level;}
	int getExperience() {return experience;}
	char getRankLetter() {return RANK_LETTERS[rank[0]];}
	void levelUp() ;
	void rankUp() ;
	void reincarnate();
	void experienceBar() ;
	void experienceBoost(int exp);
	void validate();
	void print();
	void save(ofstream &out) ;
};

#endif
