private void Spawn() { SpawnEnemyEvent spawnEnemy = new SpawnEnemyEvent(enemyPrefab, startSpawnPosition.transform.position.x, endSpawnPosition.transform.position.x, startSpawnPosition.transform.position.y, endSpawnPosition.transform.position.y); spawnEnemy.FireEvent(); }
public bool Handle(WaveEvent waveEvent) { bool handled = false; switch (waveEvent.type) { case WaveEvent.Type.SpawnEnemy: handled = true; if (lanes > waveEvent.lane) { Lane lane = LaneBy(waveEvent.lane); for (int i = 0; lane.objects.Count > i && handled; i++) { if (lane.objects[i] is LaneEntity && lane.objects[i].rect.width > lane.objects[i].back - lane.start.x) { handled = false; } } if (handled) { SpawnEnemyEvent spawnEnemyEvent = (waveEvent as SpawnEnemyEvent); EnemyLevel enemyLevel = spawnEnemyEvent.enemyDefinition.levels[spawnEnemyEvent.level]; lane.Add(new Enemy(spawnEnemyEvent.enemyDefinition, spawnEnemyEvent.level, new EnemySettings(enemyLevel.color, enemyLevel.health, enemyLevel.speed), lane, waveEvent.entryPoint, _container)); } } return(handled); default: return(handled); } }
SpawnEnemyEvent constructSpawnEnemyEvent(SpawnEnemyEventField f) { SpawnEnemyEvent cons = ScriptableObject.CreateInstance("SpawnEnemyEvent") as SpawnEnemyEvent; cons.init(f.startTime, f.despawn, this.transform, f.tileCoords, f.enemy, f.attack); return(cons); }
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) }); } } } } }