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; } }
public void addEnemy(Globals.battleEnemyTypes type) { types.Add(type); }
/* 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; } } }