public AttackAction(FSMState owner, AI.AIController aiController) : base(owner, aiController)
 {
 }
Ejemplo n.º 2
0
        protected void loadMap(string mapName)
        {
            // clear all lists
            pathNodes.Clear();
            DynamicObjs.Clear();
            AllObjects.Clear();
            DynamicObjs.Clear();
            Fighters.Clear();
            Destroyers.Clear();
            Towers.Clear();
            Asteroids.Clear();
            Projectiles.Clear();
            spawnPoints.Clear();

            //First read in map:
            XmlReader reader = XmlReader.Create(mapName);
            while (reader.Read())
                if (reader.NodeType == XmlNodeType.Element)
                    if (reader.Name == "Map")
                        readMapContent(reader.ReadSubtree());
                    else throw new Exception("Expected Token: Map");
            reader.Close();

            //Setup controllers:
            navComputer = new AI.NavigationComputer(gameGrid);
            aiController = new AI.AIController(gameGrid, navComputer, this, Towers);

            //Initially Spawn players:
            spawnPlayer(Objects.Team.Red, game);
            spawnPlayer(Objects.Team.Blue, game);

            //Setup teams:
            List<Objects.Turret> team1InitialTurrets = new List<Objects.Turret>();
            List<Objects.Turret> team2InitialTurrets = new List<Objects.Turret>();
            foreach (Objects.Turret tr in Towers)
                if (tr.Team == Objects.Team.Red)
                    team1InitialTurrets.Add(tr);
                else if (tr.Team == Objects.Team.Blue)
                    team2InitialTurrets.Add(tr);
            List<AI.Node> team1OwnedNodes = new List<AI.Node>();
            List<AI.Node> team2OwnedNodes = new List<AI.Node>();
            foreach (AI.Node n in pathNodes.Values)
                if (n.OwningTeam == 0)
                    team1OwnedNodes.Add(n);
                else if (n.OwningTeam == 1)
                    team2OwnedNodes.Add(n);
            List<AI.SpawnPoint> team1OwnedSpawnPoints = new List<AI.SpawnPoint>();
            List<AI.SpawnPoint> team2OwnedSpawnPoints = new List<AI.SpawnPoint>();
            foreach (AI.SpawnPoint n in spawnPoints)
                if (n.OwningTeam == 0)
                    team1OwnedSpawnPoints.Add(n);
                else if (n.OwningTeam == 1)
                    team2OwnedSpawnPoints.Add(n);
            team1 = new AI.TeamInformation(Objects.Team.Red, false, team1InitialTurrets, TradingInformation.startingCreditsPerTeam, Player1, team1OwnedNodes,
                team1OwnedSpawnPoints, MAX_NUM_FIGHTERS_PER_TEAM, MAX_NUM_DESTROYERS_PER_TEAM, Team1Base, Team1SpawnPoint);
            team2 = new AI.TeamInformation(Objects.Team.Blue, numPlayers.Equals(Players.single) ? true : false, team2InitialTurrets,
                TradingInformation.startingCreditsPerTeam, Player2, team2OwnedNodes,
                team2OwnedSpawnPoints, MAX_NUM_FIGHTERS_PER_TEAM, MAX_NUM_DESTROYERS_PER_TEAM, Team2Base, Team2SpawnPoint);
            aiController.registerTeam(team1);
            aiController.registerTeam(team2);
        }
Ejemplo n.º 3
0
 public TextAction(FSMState owner, AI.AIController aiController) : base(owner, aiController)
 {
 }
 public FSMAction(FSMState owner, AI.AIController aiController)
 {
     this.owner        = owner;
     this.aiController = aiController;
 }