Esempio n. 1
0
 internal void HandleInput(InputHandler inputHandler)
 {
     if (inputHandler.SelectionContext == SelectionContext.PlacingTower && inputHandler.SelectionInGameBounds())
     {
         Tower t = inputHandler.SelectedObject as Tower;
         if (GameStats.Gold >= t.Cost)
         {
             GameStats.Gold = GameStats.Gold - t.Cost;
             towerlist.Add(t);
             t.Position = inputHandler.Position;
             inputHandler.CancelSelection();
             ResourceManager.WallSound.Play();
         }
         else
         {
             MessageLog.NotEnoughGold();
         }
     }
     else
     {
         towerlist.ForEach(t =>
         {
             if (t.BoundingBox().Contains(inputHandler.Position))
             {
                 inputHandler.CancelSelection();
                 inputHandler.SelectionContext = SelectionContext.TowerSelected;
                 t.Selected = true;
                 inputHandler.SelectedObject = t;
             }
         });
     }
 }
Esempio n. 2
0
 internal void Update(GameTime gameTime, InputHandler inputHandler)
 {
     constructionCard.Update(gameTime, inputHandler);
     actionCard.Update(gameTime, inputHandler);
     if (inputHandler.SelectionOccurring)
     {
         if (startButton.BoundingBox().Contains(inputHandler.Position) && !GameStats.AttackPhase)
         {
             inputHandler.CancelSelection();
             startGame();
         }
     }
 }
Esempio n. 3
0
        public void HandleInput(InputHandler inputHandler)
        {
            switch (ButtonType)
            {
            case ButtonType.GenericTowerButton:
            case ButtonType.CannonTowerButton:
            case ButtonType.BatteryTowerButton:
            case ButtonType.BlastTowerButton:
                inputHandler.CancelSelection();
                inputHandler.SelectionContext = SelectionContext.PlacingTower;
                inputHandler.SelectedObject   = CreateTowerInstance();
                break;

            case ButtonType.WallButton:
                inputHandler.CancelSelection();
                inputHandler.SelectionContext = SelectionContext.PlacingWall;
                break;

            case ButtonType.PortalButton:
                inputHandler.CancelSelection();
                inputHandler.SelectionContext = SelectionContext.PlacingPortalEntrance;
                break;

            case ButtonType.CheeseButton:
                inputHandler.CancelSelection();
                inputHandler.SelectionContext = SelectionContext.PlacingCheese;
                break;

            case ButtonType.SellButton:
            {
                if (inputHandler.SelectionContext == SelectionContext.TowerSelected)
                {
                    Tower t = inputHandler.SelectedObject as Tower;
                    t.Sell();
                    inputHandler.CancelSelection();
                }
                if (inputHandler.SelectionContext == SelectionContext.NodeSelected)
                {
                    Node n = inputHandler.SelectedObject as Node;
                    n.Sell();
                    inputHandler.CancelSelection();
                }
            }
            break;

            case ButtonType.UpgradeButton:
            {
                Tower t = inputHandler.SelectedObject as Tower;
                if (GameStats.Gold >= t.Cost)
                {
                    GameStats.Gold = GameStats.Gold - t.Cost;
                    t.upgrade();
                }
                else
                {
                    MessageLog.NotEnoughGold();
                }
            }
            break;

            case ButtonType.CancelButton:
                inputHandler.CancelSelection();
                break;
            }
        }