Exemplo n.º 1
0
        public void AddTower(Tile tile)
        {
            Tower towertoadd = null;

            switch (newtowertype)
            {
            case "Arrow Tower":
                towertoadd = new ArrowTower(towerTexture[0], bulletTexture, new Vector2(tile.TileRec.X, tile.TileRec.Y));
                break;

            case "Spike Tower":
                towertoadd = new SpikeTower(towerTexture[1], bulletTexture, new Vector2(tile.TileRec.X, tile.TileRec.Y));
                break;

            case "Slow Tower":
                towertoadd = new SlowTower(towerTexture[2], bulletTexture, new Vector2(tile.TileRec.X, tile.TileRec.Y));
                break;
            }

            if (IsCellclear(tile) && towertoadd.Cost <= money)
            {
                towers.Add(towertoadd);
                money        -= towertoadd.Cost;
                newtowertype  = string.Empty;
                tile.HasTower = true;
            }
        }
        public void AddTower()
        {
            Tower towerToAdd = null;

            switch (newTowerType)
            {
            case "Arrow Tower":
            {
                towerToAdd = new ArrowTower(towerTextures[0], bulletTextures[0], new Vector2(tileX, tileY));
                pathttype  = 0;
                break;
            }

            case "Poison Gas":
            {
                towerToAdd = new PoisonGas(towerTextures[0], bulletTextures[0], new Vector2(tileX, tileY));
                pathttype  = 1;
                break;
            }
            }

            if (IsCellClear(pathttype) == true && towerToAdd.Cost <= money)
            {
                towers.Add(towerToAdd);
                money -= towerToAdd.Cost;

                newTowerType = string.Empty;
            }
        }
Exemplo n.º 3
0
 public void Setup(ArrowTower _tw, float _sp)
 {
     linkedTower = _tw;
     speed = _sp;
     initPos = transform.position;
     GetComponent<ColliderKiller>().Setup(linkedTower);
 }
        private void CreateTower()
        {
            Rectangle tempRect = new Rectangle(tileX, tileY, Engine.TileWidth, Engine.TileHeight);

            if (!towerManager.IsOnTower(tileX, tileY))
            {
                if (tower is ArrowTower)
                {
                    ArrowTower arrow = new ArrowTower(arrowTower,
                                                      new Vector2(tileX, tileY), bullet, 1, soundBank);
                    towerManager.AddTower(arrow);
                    money -= tower.Cost;
                    tower  = null;
                }

                else if (tower is SpikeTower)
                {
                    SpikeTower spike = new SpikeTower(spikeTower,
                                                      new Vector2(tileX, tileY), bullet, 1, soundBank);
                    towerManager.AddTower(spike);
                    //money -= tower.Cost;
                    money -= 1;
                    tower  = null;
                }

                else if (tower is BombTower)
                {
                    BombTower bomb = new BombTower(bombTower,
                                                   new Vector2(tileX, tileY), bullet, 1, soundBank);
                    towerManager.AddTower(bomb);
                    //money -= tower.Cost;
                    money -= 1;
                    tower  = null;
                }

                else if (tower is OneandOneTower)
                {
                    OneandOneTower oneandone = new OneandOneTower(bombTower,
                                                                  new Vector2(tileX, tileY), bullet, 1, soundBank);
                    towerManager.AddTower(oneandone);
                    money -= tower.Cost;
                    tower  = null;
                }
                if (tower is ofLoveTower)
                {
                    ofLoveTower love = new ofLoveTower(ofLoveTower,
                                                       new Vector2(tileX, tileY), bullet, 1, soundBank);
                    towerManager.AddTower(love);
                    money -= tower.Cost;
                    soundBank.PlayCue("liebe2");
                    tower = null;
                }
            }
        }
Exemplo n.º 5
0
    private void Awake()
    {
        if (!this.tower)
        {
            this.tower = GetComponent <ArrowTower>();
        }

        if (this.attackSpeedTimer == null)
        {
            this.attackSpeedTimer = new Timer(this.AttackSpeed);
        }
        else
        {
            this.attackSpeedTimer.DefiniteTime = this.AttackSpeed;
        }
        this.attackSpeedTimer.AfterTime = Random.Range(0, this.attackSpeedTimer.DefiniteTime);
    }
        public void AddTower()
        {
            Tower towerToAdd = null;

            switch (newTowerType)
            {
                case "Arrow Tower":
                    {
                        towerToAdd = new ArrowTower(towerTextures[0], bulletTextures[0], new Vector2(tileX, tileY));
                        pathttype = 0;
                        break;
                    }
                case "Poison Gas":
                    {
                        towerToAdd = new PoisonGas(towerTextures[0],bulletTextures[0],new Vector2(tileX,tileY));
                        pathttype = 1;
                        break;
                    }

            }

            if (IsCellClear(pathttype) == true && towerToAdd.Cost <= money)
            {
                towers.Add(towerToAdd);
                money -= towerToAdd.Cost;

                newTowerType = string.Empty;
            }
        }
Exemplo n.º 7
0
 void Start()
 {
     ownTransform = transform;
     arrowTower   = GetComponentInParent <ArrowTower>();
 }
Exemplo n.º 8
0
        /// <summary>
        /// Adds a tower to the player's collection.
        /// </summary>
        public void AddTower(List<Enemy> enemies)
        {
            Tower towerToAdd = null;

            switch (newTowerType)
            {
                case /*"Arrow Tower"*/"ArrowTower":
                    {
                        towerToAdd = new ArrowTower(towerTexture,
                            bulletTexture, new Vector2(tileX, tileY));
                        break;
                    }
            }

            // Only add the tower if there is a space, it doesn't lock enemies from getting to the goal, and if the player can afford it.
            if (IsCellClear(enemies) == true && towerToAdd.Cost <= money)
            {
                towers.Add(towerToAdd);
                money -= towerToAdd.Cost;
                level.Map[cellY, cellX] = 1;

                // Reset the newTowerType field.
                newTowerType = string.Empty;

                // TODOne SetWaypoints of enemies!
                pathFinder.ResetSearchNodes();
                pathFinder.InitializeSearchNodes();
                foreach (Enemy e in enemies)
                {
                    List<Vector2> path = pathFinder.FindPath(new Point((int)e.Waypoints.Peek().X / 32, (int)e.Waypoints.Peek().Y / 32), new Point(4,8));

                    // Path is found
                    if (path.Count > 0)
                    {
                        e.Waypoints.Clear();
                        foreach (Vector2 waypoint in path)
                            e.Waypoints.Enqueue(waypoint);

                        // not needed: this.position = this.waypoints.Dequeue();
                    }

                    // no path possible
                    else
                        ;   // debug error msg optional
                }
            }
        }
Exemplo n.º 9
0
        public void AddMultiplayerTower(Vector2 position)
        {
            Tower towerToAdd = null;

            switch (newTowerType)
            {
                case /*"Arrow Tower"*/"ArrowTower":
                    {
                        towerToAdd = new ArrowTower(towerTexture,
                            bulletTexture, position);
                        break;
                    }
            }

            towers.Add(towerToAdd);
            newTowerType = string.Empty;
            level.Map[(int)position.X / 32, (int)position.Y / 32] = 1;

            pathFinder.ResetSearchNodes();
            pathFinder.InitializeSearchNodes();
            foreach (Enemy e in waveManager.CurrentWave.Enemies)
            {
                List<Vector2> path = pathFinder.FindPath(new Point((int)e.Waypoints.Peek().X / 32, (int)e.Waypoints.Peek().Y / 32), new Point(4, 8));

                // Path is found
                if (path.Count > 0)
                {
                    e.Waypoints.Clear();
                    foreach (Vector2 waypoint in path)
                        e.Waypoints.Enqueue(waypoint);

                    // not needed: this.position = this.waypoints.Dequeue();
                }

                // no path possible
                else
                    ;   // debug error msg optional
            }
        }