void Session_MoneyIncreased(object sender, EventArgs e) { Button bt = SelectedTower.GetButton("BuyTower"); Button ut = SelectedTower.GetButton("UpgradeTower"); if (bt != null) { if (clickedTower != null && clickedTower.Cost <= Session.ActivePlayer.Money) { bt.Texture = Session.Map.SmallNormalButtonTexture; bt.SetColor(Session.Map.ForeColor); if (bt.State == UIButtonState.Inactive) { bt.LeftClickEvent += new EventHandler(buyTower_LeftClick); bt.Activate(); } } } else if (ut != null) { if (clickedTower != null && clickedTower.UpgradeCost <= Session.ActivePlayer.Money && clickedTower.Level + 1 < clickedTower.MaxLevel) { ut.Texture = Session.Map.SmallNormalButtonTexture; ut.SetColor(Session.Map.ForeColor); if (ut.State == UIButtonState.Inactive) { ut.LeftClickEvent += new EventHandler(upgradeTower_LeftClick); ut.Activate(); } } } }
/// <summary> /// Gives player a reward if all of the types of towers have been placed at least once. /// Author: Steven Johnson /// </summary> public static bool CheckForFirstPlacement() { if (SelectedTower.CompareTag("BulletTower") && !GameManager.didPlaceBulletTower) { GameManager.didPlaceBulletTower = true; } else if (SelectedTower.CompareTag("BlackHoleTower") && !GameManager.didPlaceBlackHoleTower) { GameManager.didPlaceBlackHoleTower = true; } else if (SelectedTower.CompareTag("FlameTower") && !GameManager.didPlaceFlameTower) { GameManager.didPlaceFlameTower = true; } else if (SelectedTower.CompareTag("LaserTower") && !GameManager.didPlaceLaserTower) { GameManager.didPlaceLaserTower = true; } else if (SelectedTower.CompareTag("ShotgunTower") && !GameManager.didPlaceShotgunTower) { GameManager.didPlaceShotgunTower = true; } if (GameManager.didPlaceBulletTower && GameManager.didPlaceShotgunTower && GameManager.didPlaceBlackHoleTower && GameManager.didPlaceLaserTower && GameManager.didPlaceFlameTower) { return(true); } else { return(false); } }
private void AddPurchaseButton(int y) { if (clickedTower.Cost <= Session.ActivePlayer.Money && clickedTower.Level < clickedTower.MaxLevel) { string bt = String.Format("Buy Tower (Costs {0})", clickedTower.Cost); Vector2 btdim = spriteFont.MeasureString(bt); Vector2 bpos = new Vector2((int)(SelectedTower.Dimensions.Left + (Session.Map.SmallNormalButtonTexture.Width / 2.0f) + (SelectedTower.Dimensions.Width - Session.Map.SmallNormalButtonTexture.Width) / 2.0f), (int)(y + (Session.Map.SmallNormalButtonTexture.Height / 2.0f))); Vector2 tpos = new Vector2((int)(bpos.X - Session.Map.SmallNormalButtonTexture.Width / 2.0f + padding), (int)(y + (Session.Map.SmallNormalButtonTexture.Height - btdim.Y) / 2.0f)); Button b = new Button(Session.Map.SmallNormalButtonTexture, bpos, new Text(bt, spriteFont, tpos), Session.Map.ForeColor, clickedTower); b.LeftClickEvent += new EventHandler(buyTower_LeftClick); SelectedTower.Add("BuyTower", b); } else { string bt = String.Format("Buy Tower (Costs {0})", clickedTower.Cost); Vector2 btdim = spriteFont.MeasureString(bt); Vector2 bpos = new Vector2((int)(SelectedTower.Dimensions.Left + (Session.Map.SmallErrorButtonTexture.Width / 2.0f) + (SelectedTower.Dimensions.Width - Session.Map.SmallErrorButtonTexture.Width) / 2.0f), (int)(y + (Session.Map.SmallErrorButtonTexture.Height / 2.0f))); Vector2 tpos = new Vector2((int)(bpos.X - Session.Map.SmallErrorButtonTexture.Width / 2.0f + padding), (int)(y + (Session.Map.SmallErrorButtonTexture.Height - btdim.Y) / 2.0f)); Button b = new Button(Session.Map.SmallErrorButtonTexture, bpos, new Text(bt, spriteFont, tpos), Session.Map.ErrorColor, clickedTower); b.Deactivate(); SelectedTower.Add("BuyTower", b); } }
private int AddUpgradeButton(int y) { Button b = null; if (clickedTower.UpgradeCost <= Session.ActivePlayer.Money && clickedTower.Level + 1 < clickedTower.MaxLevel) { string bt = String.Format("Upgrade Tower (Costs {0})", clickedTower.UpgradeCost); Vector2 btdim = spriteFont.MeasureString(bt); Vector2 bpos = new Vector2((int)(SelectedTower.Dimensions.Left + (Session.Map.SmallNormalButtonTexture.Width / 2.0f) + (SelectedTower.Dimensions.Width - Session.Map.SmallNormalButtonTexture.Width) / 2.0f), (int)(y + (Session.Map.SmallNormalButtonTexture.Height / 2.0f))); Vector2 tpos = new Vector2((int)(bpos.X - Session.Map.SmallNormalButtonTexture.Width / 2.0f + padding), (int)(y + (Session.Map.SmallNormalButtonTexture.Height - btdim.Y) / 2.0f)); b = new Button(Session.Map.SmallNormalButtonTexture, bpos, new Text(bt, spriteFont, tpos), Session.Map.ForeColor, clickedTower); b.LeftClickEvent += new EventHandler(upgradeTower_LeftClick); SelectedTower.Add("UpgradeTower", b); } else { string bt = String.Format("Upgrade Tower (Costs {0})", clickedTower.UpgradeCost); Vector2 btdim = spriteFont.MeasureString(bt); Vector2 bpos = new Vector2((int)(SelectedTower.Dimensions.Left + (Session.Map.SmallErrorButtonTexture.Width / 2.0f) + (SelectedTower.Dimensions.Width - Session.Map.SmallErrorButtonTexture.Width) / 2.0f), (int)(y + (Session.Map.SmallErrorButtonTexture.Height / 2.0f))); Vector2 tpos = new Vector2((int)(bpos.X - Session.Map.SmallErrorButtonTexture.Width / 2.0f + padding), (int)(y + (Session.Map.SmallErrorButtonTexture.Height - btdim.Y) / 2.0f)); b = new Button(Session.Map.SmallErrorButtonTexture, bpos, new Text(bt, spriteFont, tpos), Session.Map.ErrorColor, clickedTower); b.Deactivate(); SelectedTower.Add("UpgradeTower", b); } return((int)(b.Position.Y - b.Origin.Y) + b.Texture.Height); }
public void OnrSellButtonClick() { _moneyEvent.Raise(SelectedTower.SellCost); SelectedTower.Disable(); SelectedTower.Sell(); SelectedTower = null; _audioEvent.Raise((int)Sound.SellTower); _towerDeselected.Raise(); }
public void SellTower() { if (SelectedTower != null) { SelectedTower.Toggle(); Currency += SelectedTower.Price / 2; SelectedTower.GetComponentInParent <TileScript>().IsEmpty = true; Destroy(SelectedTower.gameObject); } }
// Ensure there is always 1 instance of the selected tower private void Awake() { if (towerInstance == null) { towerInstance = this; } else { Destroy(this); } }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Keypad1)) { currentSelectedTower = SelectedTower.Ballistic; } else if (Input.GetKeyDown(KeyCode.Keypad2)) { currentSelectedTower = SelectedTower.Heavy; } }
private void HandleEscape() { if (Input.GetKeyDown(KeyCode.Escape)) { SoundManager.Instance.PlayAudio("TowerNotPlaced"); Hover.Instance.Deactivate(); if (SelectedTower != null) { SelectedTower.Toggle(); } } }
public void OnUpgradeButtonClick() { if (!_canUpgrade) { return; } if (SelectedTower.LevelUp()) { _audioEvent.Raise((int)Sound.UpgradeTower); _moneyEvent.Raise(-SelectedTower.UpgradeCost); } }
private void AddSellButton(int y) { Button b = null; string st = String.Format("Sell Tower (Receive {0})", (int)(clickedTower.TotalCost * clickedTower.SellScalar)); Vector2 stdim = spriteFont.MeasureString(st); Vector2 bpos = new Vector2((int)(SelectedTower.Dimensions.Left + (Session.Map.SmallNormalButtonTexture.Width / 2.0f) + (SelectedTower.Dimensions.Width - Session.Map.SmallNormalButtonTexture.Width) / 2.0f), (int)(y + (Session.Map.SmallNormalButtonTexture.Height / 2.0f))); Vector2 tpos = new Vector2((int)(bpos.X - Session.Map.SmallNormalButtonTexture.Width / 2.0f + padding), (int)(y + (Session.Map.SmallNormalButtonTexture.Height - stdim.Y) / 2.0f)); b = new Button(Session.Map.SmallNormalButtonTexture, bpos, new Text(st, spriteFont, tpos), Session.Map.ForeColor, clickedTower); b.LeftClickEvent += new EventHandler(sellTower_LeftClick); SelectedTower.Add("SellTower", b); }
private void InitializeSelectedTower(Tower t) { SelectedTower.ClearAll(); Image icon = new Image(clickedTower.Texture, new Vector2(SelectedTower.Dimensions.Left, SelectedTower.Dimensions.Top + padding)); SelectedTower.Add("TowerIcon", icon); SelectedTower.Add("TowerName", new Text(clickedTower.Name + " " + (clickedTower.Level + 1).ToString(), spriteFont, new Vector2(icon.Rectangle.Right + padding, SelectedTower.Dimensions.Top + padding))); SelectedTower.Add("TowerDescription", new Text(clickedTower.Description, spriteFont, new Vector2(icon.Rectangle.Right + padding, SelectedTower.Dimensions.Top + padding + spriteFont.LineSpacing))); Text stats = new Text(clickedTower.CurrentStatistics.ToShortString(), spriteFont, new Vector2(SelectedTower.Dimensions.Left + padding, icon.Rectangle.Bottom)); SelectedTower.Add("Stats", stats); Text specials = new Text(String.Format("Specials: {0}", t.bulletBase.Type == BulletType.Normal ? "None" : t.bulletBase.Type.ToString()), spriteFont, new Vector2(SelectedTower.Dimensions.Left + padding, stats.Rectangle.Bottom)); SelectedTower.Add("Specials", specials); Text price = new Text(String.Format("Price: {0}", clickedTower.TotalCost), spriteFont, new Vector2(SelectedTower.Dimensions.Left + padding, specials.Rectangle.Bottom)); SelectedTower.Add("Price", price); if (t.IsPlaced) { int pb = AddUpgradeButton(price.Rectangle.Bottom + padding); AddSellButton(pb + padding); } else { AddPurchaseButton(price.Rectangle.Bottom + padding); } string s = t.IsPlaced ? "Deselect Tower" : "Cancel"; Vector2 sdim = spriteFont.MeasureString(s); Vector2 cbpos = new Vector2((int)(SelectedTower.Dimensions.Left + (Session.Map.SmallNormalButtonTexture.Width / 2.0f) + (SelectedTower.Dimensions.Width - Session.Map.SmallNormalButtonTexture.Width) / 2.0f), (int)(SelectedTower.Dimensions.Bottom - (Session.Map.SmallNormalButtonTexture.Height / 2.0f) - padding)); Vector2 ctpos = new Vector2((int)(cbpos.X - Session.Map.SmallNormalButtonTexture.Width / 2.0f + padding), (int)(SelectedTower.Dimensions.Bottom - (Session.Map.SmallNormalButtonTexture.Height + sdim.Y) / 2.0f - padding)); Button cb = new Button(Session.Map.SmallNormalButtonTexture, cbpos, new Text(s, spriteFont, ctpos), Session.Map.ForeColor, null); cb.LeftClickEvent += new EventHandler(cancelButton_LeftClick); SelectedTower.Add("Cancel", cb); }
public void Draw(GameTime gameTime, SpriteBatch spriteBatch, SpriteFont spriteFont) { spriteBatch.Draw(background, Rectangle, Color.White); MoneyAndTowers.Draw(gameTime, spriteBatch, spriteFont); if (clickedTower != null) { SelectedTower.Draw(gameTime, spriteBatch, spriteFont); } else { PurchaseTower.Draw(gameTime, spriteBatch, spriteFont); } StatsAndControls.Draw(gameTime, spriteBatch, spriteFont); }
void Session_TowerPurchased(object sender, TowerEventArgs ptea) { ptea.t.LeftClickEvent += new EventHandler(clickableTower_LeftClickEvent); Button b = SelectedTower.GetButton("BuyTower"); if (clickedTower.Cost > Session.ActivePlayer.Money) { b.Texture = Session.Map.SmallErrorButtonTexture; b.SetColor(Session.Map.ErrorColor); if (b.State == UIButtonState.Active) { b.LeftClickEvent -= buyTower_LeftClick; b.Deactivate(); } } }
void upgradeTower_LeftClick(object sender, EventArgs e) { Button b = sender as Button; if (b != null) { Tower t = b.StoredObject as Tower; Session.UpgradeTower(t); b.ButtonText.Value = String.Format("Upgrade Tower (Costs {0})", clickedTower.UpgradeCost); SelectedTower.GetButton("SellTower").ButtonText.Value = String.Format("Sell Tower (Receive {0})", (int)(clickedTower.TotalCost * clickedTower.SellScalar)); SelectedTower.GetText("Stats").Value = clickedTower.CurrentStatistics.ToShortString(); SelectedTower.GetText("Price").Value = String.Format("Price: {0}", clickedTower.TotalCost); SelectedTower.GetText("TowerName").Value = clickedTower.Name + " " + (clickedTower.Level + 1).ToString(); if (clickedTower.UpgradeCost > Session.ActivePlayer.Money || clickedTower.Level == clickedTower.MaxLevel) { b.Texture = Session.Map.SmallErrorButtonTexture; b.SetColor(Session.Map.ErrorColor); b.LeftClickEvent -= upgradeTower_LeftClick; b.Deactivate(); } } }
void Start() { currentSelectedTower = SelectedTower.Ballistic; }
public void OnCancelButtonClick() { SelectedTower.Disable(); SelectedTower = null; _towerDeselected.Raise(); }