Example #1
0
        public virtual void Update()
        {
            if (!user.hero.dead && user.buildings.Count > 0 && !GameGlobals.paused)
            {
                levelDrawManager.Update();

                allObjects.Clear();
                allObjects.AddRange(user.GetAllObjects());
                allObjects.AddRange(aIPlayer.GetAllObjects());


                user.Update(aIPlayer, offset, grid);
                aIPlayer.Update(user, offset, grid);


                for (int i = 0; i < projectiles.Count; i++)
                {
                    projectiles[i].Update(offset, allObjects);

                    if (projectiles[i].done)
                    {
                        projectiles.RemoveAt(i);
                        i--;
                    }
                }

                for (int i = 0; i < effects.Count; i++)
                {
                    effects[i].Update(offset);

                    if (effects[i].done)
                    {
                        effects.RemoveAt(i);
                        i--;
                    }
                }

                for (int i = 0; i < sceneItems.Count; i++)
                {
                    sceneItems[i].Update(offset);

                    sceneItems[i].UpdateDraw(offset, levelDrawManager);
                }
            }
            else
            {
                if (Globals.keyboard.GetPress("Enter") && (user.hero.dead || user.buildings.Count <= 0))
                {
                    ResetWorld(null);
                }
            }

            if (grid != null)
            {
                grid.Update(offset);
            }

            if (Globals.keyboard.GetSinglePress("Back"))
            {
                ResetWorld(null);
                ChangeGameState(2);
            }

            if (Globals.keyboard.GetSinglePress("Y"))
            {
                ResetWorld(null);
                ChangeGameState(2);
            }

            if ((user.gold > 50 || user.buildings.Count <= 0) && levelId == 1)
            {
                ResetWorld(2);
            }

            if ((user.gold > 75 || user.buildings.Count <= 0) && levelId == 2)
            {
                ResetWorld(3);
            }
            if ((user.gold > 100 || user.buildings.Count <= 0) && levelId == 3)
            {
                if (stop == 0)
                {
                    stop = 1;
                    GameGlobals.paused = !GameGlobals.paused;
                }
            }
            if (Globals.keyboard.GetSinglePress("Enter") && user.gold > 50 && levelId == 3)
            {
                ResetWorld(null);
                ChangeGameState(2);
            }



            if (Globals.keyboard.GetSinglePress("Space"))
            {
                GameGlobals.paused = !GameGlobals.paused;
            }

            if (Globals.keyboard.GetSinglePress("G"))
            {
                grid.showGrid = !grid.showGrid;
            }


            ui.Update(this);
        }