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; } }
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; } } }
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; } }
void Start() { ownTransform = transform; arrowTower = GetComponentInParent <ArrowTower>(); }
/// <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 } } }
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 } }