//Program name: Chao Evolution.
//Author: Jeffery Wright
//Date: 2013/06/24
//Description: Class defining the mechanisms of Chao Evolution.

#ifndef Evolution_h
#define Evolution_h

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

#include "Items.h"

using namespace std;

	const static string EVOLUTIONS[26] = {"Child", "Egg", "Child", "Child", "Child", "Normal/Neutral", "Normal/Hero", "Normal/Dark", "Swim/Neutral", "Swim/Hero", "Swim/Dark", "ly/Neutral", "Fly/Hero", "Fly/Dark", "Run/Neutral", "Run/Hero", "Run/Dark", "Power/Neutral", "Power/Hero", "Power/Dark", "Chaos/Neutral", "Chaos/Hero", "Chaos/Dark", "Tails", "Knuckles", "Amy"};

class Evolution {
	private:	
	int evolution;
	int heroDark;
	int swimFly;
	int runPower;
	public:
	Evolution () ;
	Evolution(ifstream &in) ;
	int getEvolution() ;
	string getEvolutionText();
;	int getHeroDark() ;
	int getSwimFly();
	int getRunPower() ;
	void evolve() ;
	void reincarnate() ;
	void hatch();
	void giveEvolutionItem(EvolutionItem evo);
	void printSlider(int value) ;
	void printSliders() ;
	int validateSlider(int value) ;
	void pet(int alignment) ;
	void validate();
	void save(ofstream &out);
};

#endif
