Example #1
0
        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();
                    }
                }
            }
        }
Example #2
0
    /// <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);
        }
    }
Example #3
0
        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);
            }
        }
Example #4
0
        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();
 }
Example #6
0
 public void SellTower()
 {
     if (SelectedTower != null)
     {
         SelectedTower.Toggle();
         Currency += SelectedTower.Price / 2;
         SelectedTower.GetComponentInParent <TileScript>().IsEmpty = true;
         Destroy(SelectedTower.gameObject);
     }
 }
Example #7
0
 // Ensure there is always 1 instance of the selected tower
 private void Awake()
 {
     if (towerInstance == null)
     {
         towerInstance = this;
     }
     else
     {
         Destroy(this);
     }
 }
Example #8
0
 // 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;
     }
 }
Example #9
0
 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);
            }
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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();
                }
            }
        }
Example #15
0
        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();
                }
            }
        }
Example #16
0
 void Start()
 {
     currentSelectedTower = SelectedTower.Ballistic;
 }
 public void OnCancelButtonClick()
 {
     SelectedTower.Disable();
     SelectedTower = null;
     _towerDeselected.Raise();
 }