Exemple #1
0
        public static string ToText(this AggressionLevel aggression)
        {
            switch (aggression)
            {
            case AggressionLevel.Friendly: return("Friendly");

            case AggressionLevel.Normal: return("Normal");

            case AggressionLevel.Aggressive: return("Aggressive");

            default: return(null);
            }
        }
        public override void Init(GameState s, int ti, object args)
        {
            base.Init(s, ti, args);
            Team.Capital          = int.MaxValue / 2;
            Team.PopulationCap    = int.MaxValue / 2;
            Team.OnBuildingSpawn += OnBuildingSpawn;
            Team.OnUnitSpawn     += OnUnitSpawn;
            random              = new Random();
            spawnCap            = 0;
            unitSpawnP          = new int[] { 33, 33, 34 };
            barracksControllers = new List <BarracksController>();
            squads              = new List <List <IEntity> >();
            numActive           = 0;
            timeElapsed         = 0;
            level = AggressionLevel.None;
            dt    = 10; //5

            foreach (var b in Team.Buildings)
            {
                DevConsole.AddCommand("added barracks");
                barracksControllers.Add(new BarracksController(this, b));
            }

            for (int i = 0; i < s.activeTeams.Length; i++)
            {
                if (s.activeTeams[i].Team.Input.Type == RTSInputType.Player)
                {
                    playerIndex = s.activeTeams[i].Team.Index;
                }
            }
            player = s.teams[playerIndex];

            thread = new Thread(WorkThread);
            thread.IsBackground = true;
            running             = true;
            paused = true;
        }
Exemple #3
0
 public Creature(AggressionLevel aggressionLevel)
 {
     Aggression      = (int)aggressionLevel / 100.0;
     FoodToSurvive   = 1;
     FoodToReplicate = FoodToSurvive;
 }
        private void UpdateLevel()
        {
            AggressionLevel newLevel = level;

            if (timeElapsed > 40 * dt)
            {
                newLevel = AggressionLevel.VeryHigh;
            }
            else if (timeElapsed > 28 * dt)
            {
                newLevel = AggressionLevel.High;
            }
            else if (timeElapsed > 14 * dt)
            {
                newLevel = AggressionLevel.Medium;
            }
            else if (timeElapsed > 7 * dt)
            {
                newLevel = AggressionLevel.Low;
            }
            else if (timeElapsed > 2 * dt)
            {
                newLevel = AggressionLevel.VeryLow;
            }

            if (newLevel != level)
            {
                level = newLevel;
                switch (level)
                {
                case AggressionLevel.VeryLow:
                    //DevConsole.AddCommand("very low level");
                    IncreaseActive(1);
                    spawnCap += 1;
                    break;

                case AggressionLevel.Low:
                    //DevConsole.AddCommand("low level");
                    IncreaseActive(1);
                    spawnCap += 1;
                    break;

                case AggressionLevel.Medium:
                    DevConsole.AddCommand("medium level");
                    IncreaseActive(barracksControllers.Count / 3);
                    spawnCap += 2;
                    break;

                case AggressionLevel.High:
                    DevConsole.AddCommand("high level");
                    IncreaseActive(barracksControllers.Count / 2);
                    spawnCap += 2;
                    break;

                case AggressionLevel.VeryHigh:
                    DevConsole.AddCommand("very high level");
                    IncreaseActive(barracksControllers.Count);
                    spawnCap += 3;
                    break;

                default:
                    break;
                }
            }
        }
Exemple #5
0
 /// <summary>
 /// Modify the leader aggression level.
 /// </summary>
 /// <param name="value">The new agression level for the leader.</param>
 public Aggression(AggressionLevel value) : base(typeof(AggressionLevel), value, InRange)
 {
 }
        public override void Init(GameState s, int ti, object args)
        {
            base.Init(s, ti, args);
            Team.Capital = int.MaxValue/2;
            Team.PopulationCap = int.MaxValue/2;
            Team.OnBuildingSpawn += OnBuildingSpawn;
            Team.OnUnitSpawn += OnUnitSpawn;
            random = new Random();
            spawnCap = 0;
            unitSpawnP = new int[] { 33, 33, 34 };
            barracksControllers = new List<BarracksController>();
            squads = new List<List<IEntity>>();
            numActive = 0;
            timeElapsed = 0;
            level = AggressionLevel.None;
            dt = 10; //5

            foreach (var b in Team.Buildings) {
                DevConsole.AddCommand("added barracks");
                barracksControllers.Add(new BarracksController(this, b));
            }

            for (int i = 0; i < s.activeTeams.Length; i++) {
                if (s.activeTeams[i].Team.Input.Type == RTSInputType.Player)
                    playerIndex = s.activeTeams[i].Team.Index;
            }
            player = s.teams[playerIndex];

            thread = new Thread(WorkThread);
            thread.IsBackground = true;
            running = true;
            paused = true;
        }
        private void UpdateLevel()
        {
            AggressionLevel newLevel = level;
            if (timeElapsed > 40 * dt) {
                newLevel = AggressionLevel.VeryHigh;
            }
            else if (timeElapsed > 28 * dt) {
                newLevel = AggressionLevel.High;
            }
            else if (timeElapsed > 14 * dt) {
                newLevel = AggressionLevel.Medium;
            }
            else if (timeElapsed > 7 * dt) {
                newLevel = AggressionLevel.Low;
            }
            else if (timeElapsed > 2 * dt) {
                newLevel = AggressionLevel.VeryLow;
            }

            if (newLevel != level) {
                level = newLevel;
                switch (level) {
                    case AggressionLevel.VeryLow:
                        //DevConsole.AddCommand("very low level");
                        IncreaseActive(1);
                        spawnCap += 1;
                        break;
                    case AggressionLevel.Low:
                        //DevConsole.AddCommand("low level");
                        IncreaseActive(1);
                        spawnCap += 1;
                        break;
                    case AggressionLevel.Medium:
                        DevConsole.AddCommand("medium level");
                        IncreaseActive(barracksControllers.Count / 3);
                        spawnCap += 2;
                        break;
                    case AggressionLevel.High:
                        DevConsole.AddCommand("high level");
                        IncreaseActive(barracksControllers.Count / 2);
                        spawnCap += 2;
                        break;
                    case AggressionLevel.VeryHigh:
                        DevConsole.AddCommand("very high level");
                        IncreaseActive(barracksControllers.Count);
                        spawnCap += 3;
                        break;
                    default:
                        break;
                }
            }
        }