示例#1
0
        public Enemy(string spriteMap, Vector2 pos, Globals.SpriteFace sprFace, Globals.battleEnemyTypes type)
        {
            sprites    = Globals.Content.Load <Texture2D>("Assets/" + spriteMap);
            spriteFace = sprFace;

            position = pos;

            moving = false;
            timer.Restart();
            count       = 0;
            delay       = 500;
            aggro       = false;
            aggroDelay  = 100;
            aggroRadius = 5;

            types.Add(type);
        }
        public BattleEnemy(Globals.battleEnemyTypes battleEnemyType)
        {
            switch (battleEnemyType)
            {
            case Globals.battleEnemyTypes.patrolTrooperGround:

                BattleEnemy patrolTrooperGround = new BattleEnemy("Patrol Trooper", 20, 2, 1, 5, Globals.weaponTypes.nightStick, Globals.weaponTypes.hand, "Assets/enemy");
                this.copyBattleEnemy(patrolTrooperGround);
                break;

            case Globals.battleEnemyTypes.patrolTrooperJetpack:

                BattleEnemy patrolTrooperJetpack = new BattleEnemy("Jetpacked Patrol Trooper", 20, 2, 1, 5, Globals.weaponTypes.nightStick, Globals.weaponTypes.hand, "Assets/enemy");
                this.copyBattleEnemy(patrolTrooperJetpack);
                break;

            case Globals.battleEnemyTypes.riotTrooperGround:

                BattleEnemy riotTrooperGround = new BattleEnemy("Riot Trooper", 25, 3, 2, 5, Globals.weaponTypes.nightStick, Globals.weaponTypes.homeforgedPistol, "Assets/enemy");
                this.copyBattleEnemy(riotTrooperGround);
                break;

            case Globals.battleEnemyTypes.riotTrooperJetpack:

                BattleEnemy riotTrooperJetpack = new BattleEnemy("Riot Trooper", 25, 3, 2, 5, Globals.weaponTypes.nightStick, Globals.weaponTypes.homeforgedPistol, "Assets/enemy");
                this.copyBattleEnemy(riotTrooperJetpack);
                break;

            case Globals.battleEnemyTypes.ajax:

                BattleEnemy ajax = new BattleEnemy("Ajax", 35, 7, 4, 17, Globals.weaponTypes.ajaxPistol, Globals.weaponTypes.hand, "Assets/enemy");
                this.copyBattleEnemy(ajax);
                break;

            case Globals.battleEnemyTypes.barrin:

                BattleEnemy barrin = new BattleEnemy("Barrin", 36, 8, 5, 15, Globals.weaponTypes.barrinNightStick, Globals.weaponTypes.hand, "Assets/enemy");
                this.copyBattleEnemy(barrin);
                break;
            }
        }
示例#3
0
 public void addEnemy(Globals.battleEnemyTypes type)
 {
     types.Add(type);
 }
示例#4
0
        /* DEPRECATED. Also was getting in the way of the overloaded constructor. And that's kinda annoying.
         * public Map(ContentManager c, SpriteBatch s, Vector2 screenBounds, Rectangle windowBounds, string spriteMap)
         * {
         *  Globals.Content = c;
         *  Globals.spriteBatch = s;
         *  Globals.screenBounds = screenBounds;
         *  Globals.windowBounds = windowBounds;
         *
         *  sprites = Globals.Content.Load<Texture2D>(spriteMap);
         *
         *  Globals.map = new List<List<Vector2>>();
         *  for (int y = 0; y < 20; y++)
         *  {
         *      List<Vector2> newRow = new List<Vector2>();
         *      for (int x = 0; x < 20; x++)
         *      {
         *          newRow.Add(new Vector2(10, 4));
         *      }
         *      Globals.map.Add(newRow);
         *  }
         *
         *  Globals.startPoint = Vector2.Zero; // Change this ASAP
         * }*/

        public Map(ContentManager c, SpriteBatch s, Vector2 screenBounds, Rectangle windowBounds, string spriteMap)
        {
            Globals.Content      = c;
            Globals.spriteBatch  = s;
            Globals.screenBounds = screenBounds;
            Globals.windowBounds = windowBounds;

            sprites = Globals.Content.Load <Texture2D>(spriteMap);

            Globals.map     = new List <List <Vector2> >();
            Globals.enemies = new List <Enemy>();

            XmlDocument reader        = new XmlDocument();
            XmlDocument overlayReader = new XmlDocument();
            string      filename      = "Maps/";

            if (Globals.fileOpen)
            {
                filename = "Saves/" + Globals.slotOpen + "/" + filename;
            }

            if (!File.Exists(filename + Globals.currentMap + "_new.xml"))
            {
                reader.Load(filename + Globals.currentMap + ".xml");
            }
            else
            {
                reader.Load(filename + Globals.currentMap + "_new.xml");
            }

            if (!File.Exists(filename + Globals.currentMap + "_events_new.xml"))
            {
                overlayReader.Load(filename + Globals.currentMap + "_events.xml");
            }
            else
            {
                overlayReader.Load(filename + Globals.currentMap + "_events_new.xml");
            }

            XmlNodeList mapx       = reader.GetElementsByTagName("mapx");
            XmlNodeList mapy       = reader.GetElementsByTagName("mapy");
            XmlNodeList tileset    = reader.GetElementsByTagName("tileset");
            XmlNodeList overlayset = overlayReader.GetElementsByTagName("overlayset");

            mapSize = new Vector2(Convert.ToInt32(mapx[0].InnerText), Convert.ToInt32(mapy[0].InnerText));
            fillEmptyMap(mapSize);
            fillEmptyOverlayMap(mapSize);
            fillEmptyPerms(mapSize);
            fillEmptyOverlayPerms(mapSize);
            fillEmptyEvents(mapSize);
            fillEmptyThrows(mapSize);

            foreach (XmlNode i in tileset)
            {
                int x     = Convert.ToInt32(i.Attributes["x"].Value);
                int y     = Convert.ToInt32(i.Attributes["y"].Value);
                int tilex = Convert.ToInt32(i.SelectSingleNode("tilex").InnerText);
                int tiley = Convert.ToInt32(i.SelectSingleNode("tiley").InnerText);
                Globals.Permissions perm = (Globals.Permissions)Enum.Parse(typeof(Globals.Permissions), i.SelectSingleNode("perms").InnerText);

                Globals.map[y][x]         = new Vector2(tilex, tiley);
                Globals.permissions[y][x] = perm;
            }

            foreach (XmlNode i in overlayset)
            {
                int x     = Convert.ToInt32(i.Attributes["x"].Value);
                int y     = Convert.ToInt32(i.Attributes["y"].Value);
                int tilex = Convert.ToInt32(i.SelectSingleNode("tilex").InnerText);
                int tiley = Convert.ToInt32(i.SelectSingleNode("tiley").InnerText);
                Globals.Permissions perm = (Globals.Permissions)Enum.Parse(typeof(Globals.Permissions), i.SelectSingleNode("perms").InnerText);

                if (i.SelectSingleNode("enemies") != null)
                {
                    XmlNodeList        enemies = i.SelectSingleNode("enemies").ChildNodes;
                    string             src     = "Paul";
                    Globals.SpriteFace sprFace = Globals.SpriteFace.Down;
                    foreach (XmlAttribute j in i.SelectSingleNode("enemies").Attributes)
                    {
                        if (j.Name == "src")
                        {
                            src = j.Value;
                        }
                        if (j.Name == "facing")
                        {
                            sprFace = (Globals.SpriteFace)Enum.Parse(typeof(Globals.SpriteFace), j.Value);
                        }
                    }

                    for (int j = 0; j < enemies.Count; j++)
                    {
                        Globals.battleEnemyTypes type = (Globals.battleEnemyTypes)Enum.Parse(typeof(Globals.battleEnemyTypes), enemies[j].InnerText);
                        if (j == 0)
                        {
                            Globals.enemies.Add(new Enemy(src, new Vector2(x, y), sprFace, type));
                        }
                        else
                        {
                            Globals.enemies[Globals.enemies.Count - 1].addEnemy(type);
                        }
                    }
                }

                string evnt = i.SelectSingleNode("event").InnerText;
                foreach (XmlAttribute j in i.SelectSingleNode("event").Attributes)
                {
                    if (j.Name == "throw")
                    {
                        Globals.eventThrows[y][x] = (Globals.EventThrow)Enum.Parse(typeof(Globals.EventThrow), j.Value);
                    }
                }
                Globals.overlayMap[y][x]   = new Vector2(tilex, tiley);
                Globals.overlayPerms[y][x] = perm;
                if (evnt != "nil")
                {
                    Globals.events[y][x] = evnt;
                }
            }
        }