//Program Name:	Chao related Items
//Author:	Jeffery Wright
//Date:		2013/06/22
//Description:	Defines state and behavior for items to be used by Micro Chao Garden

#ifndef Items_h
#define Items_h

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <fstream>

using namespace std;

class StatItem {
	private:
	int swim;
	int run;
	int power;
	int fly;
	int stamina;
	public:
	StatItem();
	StatItem(int swim, int run, int power, int fly, int stamina);
	int getSwim();
	int getRun();
	int getPower();
	int getFly();
	int getStamina();
}; //end class

const string ITEM_COLORS[8] = {"none", "Yellow", "Green", "Red", "Purple", "Blue", "Gold", "Black"};
class EvolutionItem {
	private:
	int alignment;
	int color;
	int strength;
public:
	EvolutionItem();
	EvolutionItem(int alignment, int color, int strength);
	int getAlignment();
	int getColor();
	int getStrength();
}; //end class

class ChaosDrive{
	private:
	StatItem stats;
	EvolutionItem evolution;
	public:
	ChaosDrive();
	ChaosDrive(int color);
	StatItem getStats();
	EvolutionItem getEvolution();
}; //end class

class Fruit{
	private:
	string name;
	StatItem stats; //Stats given with each bite.
	StatItem lastBite; //Stats given with last bite
	int bitesLeft;
	public:
	Fruit();
Fruit(ifstream &in);
	string getName();
	int getBitesLeft();
	StatItem getStats();
	void takeABite() {bitesLeft--;}
}; //end class

//TODO: Write Evolution Fruit class.

class Animal{
	private:
	string name;
	StatItem stats; //Stats given.
	EvolutionItem evolution;
	public:
	Animal();
Animal(ifstream &in);
	string getName();
	StatItem getStats();
	EvolutionItem getEvolution();
}; //end class

class ItemCollection {
	private:
	ChaosDrive chaosDrives[8];
	Fruit fruits[30];
	Animal animals[30];
	int fruitCount;
	int animalCount;
	public:
	ItemCollection();
	ChaosDrive getChaosDrive(int i);
	Fruit getFruit(int i);
	Animal getAnimal(int i);
	void printChaosDrives();
	void printFruits();
	void printAnimals();
}; //end class

#endif
