Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="spriteBatch"></param>
 public static void Draw(SpriteBatch spriteBatch)
 {
     spriteBatch.DrawString(Game1.font, $"Hp: {Hp}", new Vector2(20, 10), Color.Black);
     spriteBatch.DrawString(Game1.font, $"Money: {Money}", new Vector2(20, 30), Color.Black);
     spriteBatch.DrawString(Game1.font, $"Wave: {EntitySpawner.wave}", new Vector2(20, 50), Color.Black);
     spriteBatch.Draw(ActivateSpellTex, ActivateSpellBox, Color.White);
     spriteBatch.DrawString(Game1.font, spellCount.ToString(), new Vector2(ActivateSpellBox.Right, ActivateSpellBox.Top), Color.Black);
     spriteBatch.Draw(HotbarTex, new Rectangle(0, 560, 800, 80), Color.White);
     spriteBatch.Draw(NextWaveTex, NextWaveBox, Color.White);
     foreach (Tower tower in TowerTypes.Keys)
     {
         Rectangle hotbarBox;
         TowerTypes.TryGetValue(tower, out hotbarBox);
         if (hotbarBox.Contains(Game1.mouseState.Position))
         {
             spriteBatch.DrawString(Game1.font, tower.Name, new Vector2(hotbarBox.X + 10, hotbarBox.Y - 25), Color.DarkGreen);
         }
         if (Money < tower.Cost)
         {
             spriteBatch.Draw(tower.Texture, hotbarBox, Color.DimGray);
         }
         else
         {
             spriteBatch.Draw(tower.Texture, hotbarBox, Color.White);
         }
     }
     if (TowerSelected != null)
     {
         TowerSelected.Draw(spriteBatch);
     }
 }
Ejemplo n.º 2
0
    bool CheckIfTowerHover()
    {
        TowerDeselected?.Invoke();

        RaycastHit hit;
        Ray        ray = Camera.main.ScreenPointToRay(mouse.position.ReadValue());

        if (Physics.Raycast(ray, out hit, Mathf.Infinity, towerLayer))
        {
            TowerSelected?.Invoke(hit.transform.position);
            return(true);
        }

        return(false);
    }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="towers"></param>
        public static void Update(List <Tower> towers)
        {
            if (TowerSelected != null)
            {
                TowerSelected.Drawbox = new Rectangle(Game1.mouseState.Position.X - TowerSelected.Drawbox.Width / 2, Game1.mouseState.Position.Y - TowerSelected.Drawbox.Height / 2, TowerSelected.Drawbox.Width, TowerSelected.Drawbox.Height);
                TowerSelected.Update();
            }
            int n = 0;

            foreach (Tower tower in TowerTypes.Keys)
            {
                Rectangle hotbarBox;
                TowerTypes.TryGetValue(tower, out hotbarBox);
                if (Game1.mouseState.LeftButton == ButtonState.Pressed && Game1.prevMouseState.LeftButton != ButtonState.Pressed && hotbarBox.Contains(Game1.mouseState.Position) || Game1.KeyState.IsKeyDown(Options.hotbarKeys[n]) && Game1.prevKeyState.IsKeyUp(Options.hotbarKeys[n]) && Money >= tower.Cost)
                {
                    TowerSelected = tower;
                }
                n++;
            }
            int tempCounter = 0;

            foreach (Tower tower in towers)
            {
                if (tower is SpellTower)
                {
                    if ((tower as SpellTower).SpellReady)
                    {
                        tempCounter++;
                        if (Game1.mouseState.LeftButton == ButtonState.Pressed && Game1.prevMouseState.LeftButton != ButtonState.Pressed && ActivateSpellBox.Contains(Game1.mouseState.Position) || Game1.KeyState.IsKeyDown(Options.activateSpell) && Game1.prevKeyState.IsKeyUp(Options.activateSpell))
                        {
                            (tower as SpellTower).SpellActivate = true;
                            break;
                        }
                    }
                }
            }
            spellCount = tempCounter;
        }
Ejemplo n.º 4
0
 private void OnTowerSelected(ICanSelect tower)
 {
     TowerSelected?.Invoke(tower as TowerBase);
 }