Exemplo n.º 1
0
 private void ConstructBot(BotLevel mode)
 {
     _bot = new Bot(_generator, mode);
     _bot.Load();
     Remove(_levelScreen);
     AddQuestionScreen();
 }
Exemplo n.º 2
0
        public int CompareTo(object obj)
        {
            var other  = (MapPathNode)obj;
            var result = Cost.CompareTo(other.Cost);

            if (result != 0)
            {
                return(result);
            }

            result = CellNumbers.Length.CompareTo(other.CellNumbers.Length);
            if (result != 0)
            {
                return(result);
            }

            result = BotLevel.CompareTo(other.BotLevel);
            if (result != 0)
            {
                return(result);
            }

            result = HasTeleport.CompareTo(other.HasTeleport);
            return(result);
        }
Exemplo n.º 3
0
        public void newUnit(BotType type, Vehicle target, Player owner, BotLevel level, Helpers.ObjectState state = null)
        {
            Unit newUnit = new Unit(this);

            Bot bot = newBot(_titan, type, target, owner, level, state);

            newUnit._vehicleID = (ushort)bot._type.Id;
            newUnit._state     = state;
            newUnit._id        = (ushort)(_database.getLastBotID(_owner) + 1);
            newUnit._bot       = bot;
            _database.addBot(bot, _owner);
            _units.Add(bot._id, newUnit);
        }
Exemplo n.º 4
0
        private void botGameInit(BotLevel level)
        {
            botGameCopy      = null;
            botGameIsPlaying = true;
            if (!firstMove.Checked)
            {
                playerColor = Player.O;
                botColor    = Player.X;
            }

            botGame = new UTTT(botField);
            bot     = new Bot(level, botColor);

            if (!firstMove.Checked)
            {
                botGame.SetMark(bot.NextMove(botGame.gameStateToString()));
            }

            analysis.Checked   = false;
            diff.SelectedIndex = 0;
        }
Exemplo n.º 5
0
 //Constructor
 public Bot(QAGenerator generator, BotLevel mode) : base(generator)
 {
     _mode      = mode;
     _neurons   = new List <Neuron>();
     _generator = generator;
 }
Exemplo n.º 6
0
        private Bot newBot(Team team, BotType type, Vehicle target, Player owner, BotLevel level, Helpers.ObjectState state = null)
        {
            if (_bots == null)
            {
                _bots = new List <Bot>();
            }

            //Max bots?
            if (_bots.Count >= _botMax)
            {
                //Unless we're a special bot type, disregard
                if (type == BotType.Marine || type == BotType.Ripper)
                {
                    Log.write(TLog.Warning, "Excessive bot spawning");
                    return(null);
                }
            }

            //What kind is it?
            switch (type)
            {
                #region Gunship
            case BotType.Gunship:
            {
                //Collective vehicle
                ushort vehid = 134;

                //Titan vehicle?
                if (team._name == "Titan Militia")
                {
                    vehid = 147;
                }

                Gunship gunship = _arena.newBot(typeof(Gunship), vehid, team, owner, state, null) as Gunship;
                if (gunship == null)
                {
                    return(null);
                }

                gunship._team = team;
                gunship.type  = BotType.Dropship;
                gunship.init(state, _baseScript, target, owner, Settings.GameTypes.RTS);

                gunship.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(gunship);

                return(gunship as Bot);
            }

                #endregion
                #region Elite Heavy
            case BotType.EliteHeavy:
            {
                //Collective vehicle
                ushort vehid = 148;

                EliteHeavy heavy = _arena.newBot(typeof(EliteHeavy), vehid, team, null, state, null) as EliteHeavy;

                if (heavy == null)
                {
                    return(null);
                }

                heavy._team = team;
                heavy.type  = BotType.EliteHeavy;
                heavy.init(Settings.GameTypes.RTS, _collective);

                heavy.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(heavy);
                return(heavy as Bot);
            }

                #endregion
                #region Elite Marine
            case BotType.EliteMarine:
            {
                //Collective vehicle
                ushort vehid = 146;

                EliteMarine elitemarine = _arena.newBot(typeof(EliteMarine), vehid, team, null, state, null) as EliteMarine;

                if (elitemarine == null)
                {
                    return(null);
                }

                elitemarine._team = team;
                elitemarine.type  = BotType.EliteHeavy;
                elitemarine.init(Settings.GameTypes.RTS, _collective);

                elitemarine.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(elitemarine);
                return(elitemarine as Bot);
            }

                #endregion
                #region Marine
            case BotType.Marine:
            {
                //Collective vehicle
                ushort vehid = 131;

                switch (level)
                {
                case BotLevel.Adept:
                    vehid = 151;
                    break;
                }

                Marine marine = _arena.newBot(typeof(Marine), vehid, team, null, state, null) as Marine;

                if (marine == null)
                {
                    return(null);
                }

                marine._team = team;
                marine.type  = BotType.Marine;
                marine.init(Settings.GameTypes.RTS, _collective);
                marine.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(marine);
                return(marine as Bot);
            }

                #endregion
                #region Ripper
            case BotType.Ripper:
            {
                //Collective vehicle normal Marine
                ushort vehid = 145;

                switch (level)
                {
                case BotLevel.Adept:
                    vehid = 152;
                    break;
                }


                Ripper ripper = _arena.newBot(typeof(Ripper), vehid, team, null, state, null) as Ripper;

                if (ripper == null)
                {
                    return(null);
                }

                ripper._team = team;
                ripper.type  = BotType.Ripper;
                ripper.init(Settings.GameTypes.RTS, _collective);
                ripper.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(ripper);
                return(ripper as Bot);
            }

                #endregion
                #region ExoLight
            case BotType.ExoLight:
            {
                //Collective vehicle
                ushort vehid = 149;

                //Titan vehicle?
                if (team._name == "Titan Militia")
                {
                    vehid = 133;
                }

                ExoLight exo = _arena.newBot(typeof(ExoLight), vehid, team, null, state, null) as ExoLight;

                if (exo == null)
                {
                    return(null);
                }

                exo._team = team;
                exo.type  = BotType.ExoLight;
                exo.init(Settings.GameTypes.RTS);

                exo.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(exo);
                return(exo as Bot);
            }

                #endregion
                #region ExoHeavy
            case BotType.ExoHeavy:
            {
                //Collective vehicle
                ushort vehid = 430;

                //Titan vehicle?
                if (team._name == "Titan Militia")
                {
                    vehid = 133;
                }

                ExoHeavy exo = _arena.newBot(typeof(ExoHeavy), vehid, team, null, state, null) as ExoHeavy;

                if (exo == null)
                {
                    return(null);
                }

                exo._team = team;
                exo.type  = BotType.ExoHeavy;
                exo.init(Settings.GameTypes.RTS);

                exo.Destroyed += delegate(Vehicle bot)
                {
                    _bots.Remove((Bot)bot);
                };

                _bots.Add(exo);
                return(exo as Bot);
            }
                #endregion
            }
            return(null);
        }
Exemplo n.º 7
0
        public void maintainBots(int now)
        {
            if (now - _tickLastBotUpdate < 5000 && _tickLastBotUpdate != 0)
            {
                return;
            }

            bool bUpdated = (_bots.Count == _units.Count);


            foreach (Unit bot in _units.Values)
            {
                if (bUpdated)
                {
                    break;
                }

                BotLevel level = BotLevel.Normal;
                BotType  type  = BotType.Marine;

                switch (bot._vehicleID)
                {
                case 152:
                    level = BotLevel.Adept;
                    type  = BotType.Ripper;
                    break;

                case 151:
                    level = BotLevel.Adept;
                    type  = BotType.Marine;
                    break;

                case 131:
                    level = BotLevel.Normal;
                    type  = BotType.Marine;
                    break;

                case 145:
                    level = BotLevel.Normal;
                    type  = BotType.Ripper;
                    break;

                case 146:
                    level = BotLevel.Elite;
                    type  = BotType.EliteMarine;
                    break;

                case 148:
                    level = BotLevel.Elite;
                    type  = BotType.EliteHeavy;
                    break;
                }

                //Avoids spawning bots under computer vehicles/buildings
                if (_arena.getVehiclesInRange(bot._state.positionX, bot._state.positionY, 150).Count(veh => veh._type.Type == VehInfo.Types.Computer) > 0)
                {
                    Helpers.randomPositionInArea(_arena, 200, ref bot._state.positionX, ref bot._state.positionY);
                }

                Bot newUnit = newBot(_titan, type, null, null, level, bot._state);

                if (newUnit == null)
                {
                    Log.write("[RTS] Could not spawn bot");
                }
                else
                {
                    bot._bot = newUnit;
                }
            }
        }
Exemplo n.º 8
0
 public Bot(BotLevel level, Player player)
 {
     botLevel = level;
     botColor = player;
     File.Delete("Game.ai");
 }
Exemplo n.º 9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BotPlayer"/> class.
 /// </summary>
 /// <param name="name">The name of the player.</param>
 /// <param name="level">The level at which this bot will score.</param>
 public BotPlayer(string name, BotLevel level) : base(name, PlayerType.Bot)
 {
     this.Level = level;
 }