protected AbstractPlayerData(int id, Civilization tribe, bool isHuman)
        {
            Id = id;
            _isHuman = isHuman;
            _civilization = tribe;

            // set leader from tribe
            _leader = Provider.Instance.Leaders.FirstOrDefault(a => a.Value.CivilizationName == _civilization.Name).Value;

            if (_leader == null)
                throw new Exception("No Leader found for " + _civilization.Name);

            Init();

            if (!_isHuman)
                StartAiThreads();
        }
        public HumanPlayerData(int id, Civilization tribe) 
			: base(id, tribe, true)
		{
		
		}
        public DiplomaticStatus DiplomaticStatusTo(Civilization civ)
        {
            foreach (DiplomaticStatus ds in _diplomaticStatuses)
                if (ds.CivilizationName == civ.Name)
                    return ds;

            return null;
        }
        public AIPlayerData(int id, Civilization tribe)
            : base(id, tribe, false)
        {
            // determine grand strategy
            DetermineGrandStragegy();
            _grandStrategyFlavours = Flavours.FromGrandStrategy(_grandStrategy);

            // add all military strategies to propability map
            foreach (MilitaryStrategyData mStrategy in Provider.Instance.MilitayStrategies.Values)
                _militaryStrategies.Add(mStrategy);
        }