Exemple #1
0
        /// <summary>
        /// Refreshs the team DNA upon extinction.
        /// </summary>
        /// <param name="extinctTeamName">Extinct team name.</param>
        public static void RefreshTeamDNA()
        {
            lock (CommonHelperMethods.GlobalFileIOLock)
            {
                if (teamNameToGeneDataDic == null || teamNameToGeneDataDic.Count == 0)
                {
                    LogUtility.LogError("GenePoolMamanger has no registered teams");
                }

                // Update parent files with win loss info
                UpdateGenePoolFilesUponExtinction();

                // Reward survivors with reproduction
                AddSurvivorsToGenePool();

                // Wipe grid
                GameObjectGrid.KillAllObjects();

                // Assign new DNA to the teams
                IList <string> teamNameList = new List <string>(teamNameToGeneDataDic.Keys);
                teamNameToGeneDataDic.Clear();
                foreach (string teamName in teamNameList)
                {
                    RegisterTeam(teamName);
                }
            }
        }
Exemple #2
0
        private void ForcePlaceSeedEnt()
        {
            GridPosition seedPoint = GameObjectGrid.ChooseRandomPosition();

            EntBehaviorManager.TryCreateAndPlaceNewEnt(
                this.TeamMaterial.color,
                seedPoint,
                this.TeamName,
                true);
        }
 internal static void KillAllObjects()
 {
     for (int x = 0; x < GameObjectGrid.GridWidth; ++x)
     {
         for (int z = 0; z < GameObjectGrid.GridHeight; ++z)
         {
             GridPosition position = new GridPosition(x, z);
             GameObjectGrid.KillObjectAt(position);
         }
     }
 }
Exemple #4
0
        /// <summary>
        /// Gets the team population count.
        /// </summary>
        /// <returns>The team population count.</returns>
        /// <param name="teamName">Team name.</param>
        public static int GetTeamPopulationCount(string teamName)
        {
            int result = 0;

            for (int x = 0; x < GameObjectGrid.GridWidth; ++x)
            {
                for (int z = 0; z < GameObjectGrid.GridHeight; ++z)
                {
                    GridPosition position = new GridPosition(x, z);
                    if (!GameObjectGrid.PositionIsAlive(position))
                    {
                        continue;
                    }

                    GameObject obj = GameObjectGrid.GetObjectAt(position);
                    if (ObjectIsOnTeam(obj, teamName))
                    {
                        result++;
                    }
                }
            }

            return(result);
        }