Beispiel #1
0
        public static void Init(GraphicsDevice graphics)
        {
            UnlockedTowers = 0;
            rnd            = new Random();
            UiManager.UiScreens.Clear();
            UiSideScreen = new UiSideGameScreen(graphics);
            UiTopScreen  = new UiTopGameScreen(graphics);
            WaveManager.Reset();
            EnemyManager.Init();
            EnemyListener.InitiliseListener();
            TowerManager.Init();
            TowerListener.InitiliseListener();
            TroopManager.Init();
            TroopListener.InitiliseListener();
            QuestionPopUpManager.Init();

            // CHEATY TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            /*UnlockedTowers |= Unlocks.RocketTower;
             * UnlockedTowers |= Unlocks.SamTower;
             * UnlockedTowers |= Unlocks.TeslaTower;
             * UnlockedTowers |= Unlocks.Upgrade;
             * ModifyResources(100000);
             * for (int i = 0; i < 100; i++)
             *  TroopManager.SpawnTroop();*/
        }
 public static void Draw(SpriteBatch sb)
 {
     EffectManager.Draw(sb, 0);
     EnemyManager.Draw(sb);
     TowerManager.Draw(sb);
     EffectManager.Draw(sb, 1);
 }
Beispiel #3
0
        public void Update()
        {
            if (m_enemy != null)
            {
                m_velocity = m_enemy.ScreenPos - m_position;
                m_velocity.Normalize();
                m_velocity *= m_speed;
                if (Vector2.Distance(m_enemy.ScreenPos, m_position) < 10)
                {
                    Lifetime = 0;
                    EnemyManager.EnemyDamaged(m_damage, m_enemy, TypeofProj);
                }
            }

            else if (m_tower != null)
            {
                m_velocity = m_tower.Position - m_position;
                m_velocity.Normalize();
                m_velocity *= m_speed;
                if (Vector2.Distance(m_tower.Position, m_position) < 10)
                {
                    Lifetime = 0;
                    TowerManager.TowerDamaged(m_damage, m_tower, TypeofProj);
                }
            }

            TimeSinceSpawn += 1 / 60f;
            m_position     += m_velocity;
            Position        = m_position;
            m_rotation      = m_velocity.ToAngle();
        }
        // as towers are not static towers should be treated as normal objects rather than elements of squares.
        static void BuildTower()
        {
            string TowerType = BuildToTowerType();

            GameManager.CostGet();

            if (!GameManager.mouseSqrCoords.CoordEqual(GameManager.ENDPOINT))
            {
                if (GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building == Squares.BuildingType.Concrete)
                {
                    if (GameManager.Manpower >= ManPower && GameManager.Resources >= Resources)
                    {
                        if (GridManager.InaccessibleSquareCheck(GameManager.grid.gridSquares, GameManager.mouseSqrCoords))
                        {
                            TowerManager.SpawnTower(TowerType, GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].PixelScreenPos, GameManager.mouseSqrCoords);
                        }
                        else
                        {
                            BlockedNotification();
                        }
                    }

                    else
                    {
                        ResourceManpowerNotification();
                    }
                }

                else
                {
                    NeedConcreteNotification();
                }
            }
        }
Beispiel #5
0
        public static void Update(GameTime gameTime)
        {
            if (mouseSqrCoords != null)
            {
                MouseScreenPos = new Vector2(mouseSqrCoords.x * SQUARESIZE, mouseSqrCoords.y * SQUARESIZE + BORDERTOP);
            }

            m_manPower = TroopListener.TroopList.Count();

            UiSideScreen.Update();
            UiTopScreen.Update();

            QuestionPopUpManager.Update();
            WaveManager.Update(gameTime);
            TowerManager.Update();
            TroopManager.Update(gameTime);
            EffectManager.Update(gameTime);
            PopUpTextManager.Update(gameTime);
            PopUpNotificationManager.Update(gameTime);
            MessageBoxManager.Update(gameTime);

            if (BaseHealth <= 0)
            {
                if (EffectManager.EffectList.Count < 10)
                {
                    for (int i = 0; i < 1; i++)
                    {
                        EffectManager.EffectCall(EffectManager.EffectEnums.Explosion, new Vector2(ENDPOINT.x * SQUARESIZE + rnd.Next(-30, 60), ENDPOINT.y * SQUARESIZE + BORDERTOP + rnd.Next(-30, 60)), true);
                    }
                }

                GameState = GameStates.LoseScreen;
            }

            if (GameState == GameStates.LoseScreen && SaveData)
            {
                SaveData             = false;
                Scores.AllTimeKills += WaveManager.EnemiesKilled;
                if (Scores.HighestWaveKills <= WaveManager.EnemiesKilled && Scores.HighestWave <= WaveManager.WaveNumber)
                {
                    Scores.HighestWaveKills = WaveManager.EnemiesKilled;
                    Scores.HighestWave      = WaveManager.WaveNumber;
                }

                Scores.SaveData(Scores);
            }

            if (GameState == GameStates.PlayScreen && !SaveData)
            {
                SaveData = true;
            }

            if (HelpMode)
            {
                HelpDialogManager.Update();
            }
        }
        public static void Update(GameTime gameTime)
        {
            UiSideScreen.Update();
            UiTopScreen.Update();

            WaveManager.Update(gameTime);
            TowerManager.Update();
            EffectManager.Update(gameTime);
        }
Beispiel #7
0
        // as towers are not static towers should be treated as normal objects rather than elements of squares.
        static void BuildTower()
        {
            string TowerType = BuildToTowerType();

            if (!GameManager.mouseSqrCoords.CoordEqual(GameManager.ENDPOINT))
            {
                if (GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building == Squares.BuildingType.Concrete)
                {
                    if (GridManager.InaccessibleSquareCheck(GameManager.grid.gridSquares, GameManager.mouseSqrCoords))
                    {
                        TowerManager.SpawnTower(TowerType, GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].PixelScreenPos, GameManager.mouseSqrCoords);
                    }
                }
            }
        }
Beispiel #8
0
        public static void Draw(SpriteBatch sb)
        {
            EffectManager.Draw(sb, 0);
            TowerManager.Draw(sb);
            EnemyManager.Draw(sb);
            TroopManager.Draw(sb);
            EffectManager.Draw(sb, 1);
            PopUpTextManager.Draw(sb);
            QuestionPopUpManager.Draw(sb);
            PopUpNotificationManager.Draw(sb);
            MessageBoxManager.Draw(sb);

            if (HelpMode)
            {
                HelpDialogManager.Draw(sb);
            }
        }
Beispiel #9
0
 public static void Delete()
 {
     if (GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building != Squares.BuildingType.None)
     {
         if (GridManager.InaccessibleSquareCheck(GameManager.grid.gridSquares, GameManager.mouseSqrCoords) && !GameManager.mouseSqrCoords.CoordEqual(GameManager.ENDPOINT))
         {
             foreach (Tower tower in TowerListener.TowersList)
             {
                 if (tower.towerCoords.CoordEqual(GameManager.mouseSqrCoords))
                 {
                     BuildManager.RemoveTowerFromSquare(tower);
                     TowerManager.DestroyTower(tower.TowerID);
                     break;
                 }
             }
         }
         GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].typeOfSquare = Squares.SqrFlags.Unoccupied;
         GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building     = Squares.BuildingType.None;
         GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].sqrEdited    = true;
     }
 }
        public static void Delete()
        {
            bool IStower = false;

            if (GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building != Squares.BuildingType.None)
            {
                foreach (Tower tower in TowerListener.TowersList)
                {
                    if (tower.towerCoords.CoordEqual(GameManager.mouseSqrCoords))
                    {
                        if (tower.TowerType == "Gun")
                        {
                            GameManager.BuildState = GameManager.BuildStates.TowerGun;
                            GameManager.CostGet();
                        }
                        else if (tower.TowerType == "Rocket")
                        {
                            GameManager.BuildState = GameManager.BuildStates.TowerRocket;
                            GameManager.CostGet();
                        }
                        else if (tower.TowerType == "SAM")
                        {
                            GameManager.BuildState = GameManager.BuildStates.TowerSAM;
                            GameManager.CostGet();
                        }
                        else if (tower.TowerType == "Tesla")
                        {
                            GameManager.BuildState = GameManager.BuildStates.TowerSAM;
                            GameManager.CostGet();
                        }


                        BuildManager.RemoveTowerFromSquare(tower);
                        GameManager.ObjectWasDemolished(tower.TowerType);
                        TowerManager.DestroyTower(tower.TowerID);
                        IStower = true;
                        break;
                    }
                }

                if (!GameManager.mouseSqrCoords.CoordEqual(new Coordinates(GameManager.WIDTH - 2, GameManager.HEIGHT - 1)) && !GameManager.mouseSqrCoords.CoordEqual(new Coordinates(GameManager.WIDTH - 1, GameManager.HEIGHT - 1)) && !GameManager.mouseSqrCoords.CoordEqual(new Coordinates(GameManager.WIDTH - 1, GameManager.HEIGHT - 2)) && !GameManager.mouseSqrCoords.CoordEqual(new Coordinates(GameManager.WIDTH - 3, GameManager.HEIGHT - 1)) && !GameManager.mouseSqrCoords.CoordEqual(new Coordinates(GameManager.WIDTH - 1, GameManager.HEIGHT - 3)))
                {
                    if (GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building == Squares.BuildingType.Concrete && !IStower)
                    {
                        GameManager.BuildState = GameManager.BuildStates.Concrete;
                        GameManager.CostGet();
                        GameManager.ObjectWasDemolished("Concrete");
                    }
                    else if (GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building == Squares.BuildingType.Trench && !IStower)
                    {
                        GameManager.BuildState = GameManager.BuildStates.Trench;
                        GameManager.CostGet();
                        GameManager.ObjectWasDemolished("Trench");
                    }


                    GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].typeOfSquare = Squares.SqrFlags.Unoccupied;
                    GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].Building     = Squares.BuildingType.None;
                    GameManager.grid.gridSquares[(int)GameManager.mouseSqrCoords.x, (int)GameManager.mouseSqrCoords.y].sqrEdited    = true;

                    GameManager.BuildState = GameManager.BuildStates.Destroy;
                }
            }
        }