//Program name: Chao Breed Header
//Author: Jeffery Wright
//Date: 2017/02/11
//Description:	Definition of a Chao's Breed.

#ifndef Breed_h
#define Breed_h

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

using namespace std;

const string CHAO_COLORS[15] = {"Normal", "Yellow", "White", "Brown", "Sky Blue", "Pink", "Blue", "Grey", "Green", "Red", "Light Green", "Purple", "Orange", "Black", "Invisible"};
const string COATS[18] = {"None", "Gold", "Silver", "Ruby", "Sapphire", " Emerald", " Amethyst", "Aquamarine", "Garnet", "Onyx", "Peridot", "Topaz", "Pearl", "Metal ", "Metal ", "Glass", "Moon", "Rare"};
void printColors() ;
void printCoats() ;


class Breed {
	private:	
	int color[2]; //Alleles for skin color.
	int coat[2]; //Alleles for Jewel Coat, overwrites color if not "none".
	bool shine[2]; //Alleles for shinyness
	bool twotone[2]; //Alleles for Two-tone trait.
	public:
	Breed () ;
	Breed(int colorIn, int CoatIn, bool shiny, bool twotoneIn);
	Breed(Breed parent0, Breed parent1) ;
	Breed(ifstream &in) ;
	int getColor(int i); 
	int getCoat(int i) ;
	bool getShine(int i) ;
	bool getTwotone(int i) ;
void validate();
void printPhenotype() ;
	void printGenotype() ;
	bool isPure() ;
	void save(ofstream &out) ;
}; //end class

#endif
