/// <summary>
        /// Military Gene:
        /// 1. NonMilitant
        /// 2. Passive Defender
        /// 3. Proactive Defender
        /// 4. Offender
        /// </summary>
        public static Gene CreateMilitaryGeneVariations()
        {
            // Assign probabilities
            int NonPercentage     = 25;
            int passivePercentage = 25;
            int activePercentage  = 25;
            int sumPrev           = NonPercentage + passivePercentage + activePercentage;

            // init gene randomly
            var          rand      = RandomHelper.StandardGeneratorInstance.Next(0, 100);
            MilitaryGene geneValue = MilitaryGene.Offender;

            if (rand < NonPercentage)
            {
                geneValue = MilitaryGene.NonMilitant;
            }
            else if (rand < NonPercentage + passivePercentage)
            {
                geneValue = MilitaryGene.Passive;
            }
            else if (rand < sumPrev)
            {
                geneValue = MilitaryGene.Proactive;
            }
            return(CreateMilitaryGene(geneValue));
        }
        /// <summary>
        /// Military Gene:
        /// 1. Defenseless - non military
        /// 2. Passive Defender
        /// 3. Proactive Defender
        /// 4. Offender
        /// </summary>
        public static Gene CreateMilitaryGene(MilitaryGene geneValue = MilitaryGene.NonMilitant)
        {
            int value = (int)geneValue;
            // ReSharper disable once UseObjectOrCollectionInitializer
            var gene = new Gene
            {
                GeneDescription = GeneEnum.Military.ToString(),
                LastValue       = value,
                Minimum         = 1,
                Maximum         = Enum.GetNames(typeof(MilitaryGene)).Length,
                CanMutate       = true,
                IsDormant       = false,
                GeneType        = GeneEnum.Military
            };

            gene.CurrentValue = value;
            return(gene);
        }