public IEnumerator SpawnEnemy(Wave wave) { var enemies = wave.enemies; foreach (var enemy in enemies) { GameObject newEnemy = null; if (enemy.GetComponent <Enemy>().flyable == Enemy.Flyable.Ground) { newEnemy = Instantiate(enemy, gameManager.startOnGround.position, Quaternion.identity); } else if (enemy.GetComponent <Enemy>().flyable == Enemy.Flyable.Air) { newEnemy = Instantiate(enemy, gameManager.startInAir.position, Quaternion.identity); } SpawnEnemyEvent?.Invoke(newEnemy.GetComponent <Enemy>()); yield return(new WaitForSeconds(wave.enemyInterval)); } }
public void Load(string _location, Action <object, BulletSpawnArgs> shoot) { Walls = new List <Sprite>(); OtherImage = new List <Sprite>(); LevelDoors = new List <Sprite>(); LocationFile_tmx = _location; XmlDocument document = new XmlDocument(); document.Load(LocationFile_tmx); XmlElement Element = document.DocumentElement; foreach (XmlNode Node in Element) { foreach (XmlNode Child in Node.ChildNodes) { if (Node.Name == "objectgroup" && Child.Name == "object") { if (Child.Attributes.Count == 4) { if (Child.Attributes.GetNamedItem("name").Value == "Start") { StartPositionForTank = PositionObj(Child, "x", "y"); } else if (Child.Attributes.GetNamedItem("name").Value == "Boss") { //x = Convert.ToSingle(Child.Attributes.GetNamedItem("x").Value, CultureInfo.InvariantCulture); //y = Convert.ToSingle(Child.Attributes.GetNamedItem("y").Value, CultureInfo.InvariantCulture); //SpawnEnemy.Invoke(this, new SpawnEnemyArgs(x, y, 2)); } else if (Child.Attributes.GetNamedItem("name").Value == "Tor") { float x = Convert.ToSingle(Child.Attributes.GetNamedItem("x").Value, CultureInfo.InvariantCulture); float y = Convert.ToSingle(Child.Attributes.GetNamedItem("y").Value, CultureInfo.InvariantCulture); SpawnEnemyEvent.Invoke(this, new SpawnEnemyArgs(new TorEnemy(new Vector2f(x, y), shoot))); } else if (Child.Attributes.GetNamedItem("name").Value == "Speed") { float x = Convert.ToSingle(Child.Attributes.GetNamedItem("x").Value, CultureInfo.InvariantCulture); float y = Convert.ToSingle(Child.Attributes.GetNamedItem("y").Value, CultureInfo.InvariantCulture); SpawnEnemyEvent.Invoke(this, new SpawnEnemyArgs(new SpeedEnemy(new Vector2f(x, y)))); } } else if (Child.Attributes.Count == 6) { if (Child.Attributes.GetNamedItem("name").Value == "Door") { LevelDoors.Add(SetSprite(Child)); } } else { Walls.Add(SetSprite(Child)); } } if (Node.Name == "imagelayer" && Child.Name == "image") { if (Node.Attributes.GetNamedItem("name").Value == "Level") { string LocationTextureTile = Child.Attributes.GetNamedItem("source").Value; LevelImage = new Sprite() { Texture = new Texture(LocationTextureTile), TextureRect = SizeObj(Child) }; } else if (Node.Attributes.Count > 2) { string LocationTextureTile = Child.Attributes.GetNamedItem("source").Value; OtherImage.Add(new Sprite() { Position = PositionObj(Node, "offsetx", "offsety"), TextureRect = SizeObj(Child), Texture = new Texture(LocationTextureTile) }); } } } } }