//	//Euclidiana... não parece interessante
    //	private float GetEuclidianDistance(Player p1, Player p2){
    //		//Distância nas 5 dimensões
    //		float distance1, distance2, d1, d2, d3, d4, d5;
    //		d1 = p1.economicEqualityMarkets - p2.economicEqualityMarkets;
    //		d2 = p1.diplomaticNationGlobe - p2.diplomaticNationGlobe;
    //		d3 = p1.civilAuthorityLiberty - p2.civilAuthorityLiberty;
    //		d4 = p1.societalTraditionProgress - p2.societalTraditionProgress;
    //		d5 = Mathf.Abs(p1.exposition - p2.exposition);
    //		//d5 = 1.0f * p2.exposition / (p1.exposition+1); //teste
    //		distance1 = Mathf.Sqrt (d1 * d1 + d2 * d2 + d3 * d3 + d4 * d4);
    //		distance2 = Mathf.Sqrt (d1 * d1 + d2 * d2 + d3 * d3 + d4 * d4 + d5 * d5);
    //		return (distance1 + distance2 + 0.001f);// + distance*d5*d5;
    //	}

    private float GetAttractionFactor(Candidate p1, ElectoralGroup_Data elec)
    {
        float af = (float)(p1.resources.visibility + 100) / GetDistance(p1, elec);

        //Debug.Log ("Attraction Factor " + af);
        return(af * af);
    }
    private float GetDistance(Candidate p1, ElectoralGroup_Data p2)
    {
        float distance1, distance2, d1, d2, d3, d4;

        d1        = Mathf.Abs(p1.alignment.economic.value - p2.alignment.economic.value);
        d2        = Mathf.Abs(p1.alignment.civil.value - p2.alignment.civil.value);
        d3        = Mathf.Abs(p1.alignment.societal.value - p2.alignment.societal.value);
        d4        = Mathf.Abs(p1.resources.visibility - p2.resources.visibility);
        distance1 = d1 + d2 + d3;
        distance2 = distance1 + d4 * d4 / (p1.resources.visibility * p1.resources.visibility + 200);  // + Mathf.Sqrt(p2.exposition/(p1.exposition+100));
        return(distance2 + 0.001f);
    }