Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    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);
        }
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
        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));
            }
        }
Esempio n. 5
0
File: TMX.cs Progetto: JovannyM/DB
        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)
                            });
                        }
                    }
                }
            }
        }